我有以下作用的代碼,它工作正常時可變日誌是字符串,即註釋的代碼,但只要我跟陣列代替原木我正在錯誤,錯誤而在陣列替換字符串反應狀態
import React from "react";
export default class WelcomeComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
// logs :''
logs: []
};
}
componentDidMount() {
var socket = io('http://localhost:11001');
socket.on('news', (data) => {
data = JSON.parse(data);
this.setState({
logs: this.state.logs.push(data)
// logs: data + this.state.logs
});
});
}
render() {
return (<div> {this.state.logs}</div>);
}
}
原木作爲陣列它提供了下面的錯誤,
遺漏的類型錯誤:_this2.state.logs.push不是一個函數(...)
任何人都可以請幫助。
如果你做一個'的console.log(this.state.logs)'在'componentDidMount',這是什麼回報? – finalfreq
它顯示爲1,不知道爲什麼 – Akash
您將日誌設置爲'.push()'的結果,這將是數組的長度,因此它被設置爲一個數字。當你下次嘗試更新狀態時,你會在數字和錯誤上調用'push'。 –