我有以下作用的代码,它工作正常时可变日志是字符串,即注释的代码,但只要我跟阵列代替原木我正在错误,错误而在阵列替换字符串反应状态
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'。 –