我确信这是显而易见的事情,然后我会觉得很傻,但我在这里错过了什么?我有类似的东西:
export default class Questions extends Component {
state = {
questions: [{value: 'one'}, {value: 'two'}]
};
addQuestion = (question) => {
let questions= this.state.questions
let newQuestions = [...questions, {value: question}]
this.setState({
questions: newQuestions
})
};
render() {
return (
<div>
{this.state.questions.map((question, index) => <p key={index}>{question.value}</p>)}
<button onClick={this.addQuestion.bind('three')}>Add</button>
</div>
)
}
}
初始状态值显示正常,但是当我单击“添加”时,我从 React 收到一个很长的错误,内容如下:
Uncaught Error: Invariant Violation: Objects are not valid as a React child...
那么,我在这里错过了什么?
最佳答案
最有可能应该是:
{this.addQuestion.bind(this, 'three')}
否则,您将无法在 addQuestion
中访问 this.state
:
let questions= this.state.questions
关于javascript - React 状态数组添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36417821/