Reactjs 在TodoApp中,单击TodoList中的项从TodoApp调用函数
我在学习一些反应。我从托多普开始。TodoApp调用组件TodoList。现在,在每个项目上,当用户单击它时,我希望它触发TodoApp.rmItem(I,e)的函数,因此我尝试了以下方法:Reactjs 在TodoApp中,单击TodoList中的项从TodoApp调用函数,reactjs,Reactjs,我在学习一些反应。我从托多普开始。TodoApp调用组件TodoList。现在,在每个项目上,当用户单击它时,我希望它触发TodoApp.rmItem(I,e)的函数,因此我尝试了以下方法: var TodoList = React.createClass({ createItem: function(itemText, index) { return <li key={index + itemText} onClick={this.context.rmItem.bin
var TodoList = React.createClass({
createItem: function(itemText, index) {
return <li key={index + itemText} onClick={this.context.rmItem.bind(null, index)}>{itemText}</li>; ////////////// ISSUE
},
render: function() {
return <ul>{this.props.items.map(this.createItem)}</ul>;
}
});
var TodoApp = React.createClass({
getInitialState: function() {
return {items: [], text: ''};
},
onChange: function(e) {
this.setState({text: e.target.value});
},
handleSubmit: function(e) {
e.preventDefault();
this.state.items.push(this.state.text);
this.state.text = '';
this.forceUpdate();
},
rmItem: function(i, e) {
console.log('e:', e);
alert(this.state.items[i]);
},
render: function() {
return (
<div>
<h3>TODO</h3>
<form onSubmit={this.handleSubmit}>
<input onChange={this.onChange} value={this.state.text} />
<button>{'Add #' + (this.state.items.length + 1)}</button>
</form>
<TodoList items={this.state.items} />
</div>
);
}
});
ReactDOM.render(<TodoApp />, mountNode);
如何进入父作用域并为其提供参数
这个例子不成立:
我想到的唯一解决方案是在这里设置范围:
<TodoList items={this.state.items} />
除此之外,还有:
<TodoList items={this.state.items} parentScope={this} />
谢谢您可以从TodoApp、TodoList到TodoItem再点击一次?谢谢@DominicTobias您能用一些代码显示一下吗:(英语不是我的母语:(
<TodoList items={this.state.items} parentScope={this} />