【发布时间】:2016-03-05 02:36:44
【问题描述】:
我有一个包含 3 个组件的应用程序。 第一个是App.jsx 它调用 TodoList 组件如下:
<TodoList items={this.state.items} loaded={this.state.loaded} />
TodoList 组件渲染多个 TodoListItem 组件
module.exports = React.createClass({
render: function(){
return (
<ul>
{this.renderList()}
</ul>
)
},
renderList: function(){
var children = [];
for(var key in this.props.items) {
if(this.props.items[key].text){
var listItem = this.props.items[key];
listItem.key = key;
children.push(
<TodoListItem item={listItem} key={key} onEdit={this.handleItemEdit} />
)
}
}
return children;
},
handleItemEdit: function(component){
console.log(component);
}
});
然后在我的 TodolistItem 组件中渲染多个 li 元素
module.exports = React.createClass({
getInitialState: function(){
return {
text: this.props.item.text,
done: this.props.item.done
}
},
render: function(){
return (
<li onClick="this.props.onEdit.bind(null,this)">{this.state.text}</li>
)
},
});
当我单击 li 时,父元素函数上的函数 handlItemEdit 被触发,我的问题是如何在其父元素的 handleItemEdit 函数中更改子元素的文本值? 我想要做的是当您单击 li 打开带有输入字段的引导模式,更改其文本,保存并将新道具传递给 TodoListItem
【问题讨论】:
标签: reactjs