【发布时间】:2015-05-19 23:32:35
【问题描述】:
从子组件对父组件执行 setState 的推荐模式是什么。
var Todos = React.createClass({
getInitialState: function() {
return {
todos: [
"I am done",
"I am not done"
]
}
},
render: function() {
var todos = this.state.todos.map(function(todo) {
return <div>{todo}</div>;
});
return <div>
<h3>Todo(s)</h3>
{todos}
<TodoForm />
</div>;
}
});
var TodoForm = React.createClass({
getInitialState: function() {
return {
todoInput: ""
}
},
handleOnChange: function(e) {
e.preventDefault();
this.setState({todoInput: e.target.value});
},
handleClick: function(e) {
e.preventDefault();
//add the new todo item
},
render: function() {
return <div>
<br />
<input type="text" value={this.state.todoInput} onChange={this.handleOnChange} />
<button onClick={this.handleClick}>Add Todo</button>
</div>;
}
});
React.render(<Todos />, document.body)
我有一个在父状态下维护的待办事项数组。
我想访问父级的状态并从TodoForm 的handleClick 组件中添加一个新的待办事项。
我的想法是在 parent 上做一个 setState,它将呈现新添加的 todo 项。
【问题讨论】:
-
只是在这里发送垃圾邮件...npmjs.com/package/react-event-observer
-
我收到错误
setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the MyModal component. -
我遇到了同样的错误,我无法在未安装的组件上设置状态。有解决办法吗?
标签: reactjs