Javascript 将子项值传递给父项
我正在学习react,想知道什么是将价值观从孩子传递给父母的最佳方式?这是我的部件 TodoItems->应将按钮的值传递给父级,以便我可以从状态中删除该项Javascript 将子项值传递给父项,javascript,reactjs,Javascript,Reactjs,我正在学习react,想知道什么是将价值观从孩子传递给父母的最佳方式?这是我的部件 TodoItems->应将按钮的值传递给父级,以便我可以从状态中删除该项 var TodoItems = createClass ({ render:function(){ var listItem = this.props.items.map((item) =>{ return <li key={item.key}> {item.text} <button o
var TodoItems = createClass ({
render:function(){
var listItem = this.props.items.map((item) =>{
return <li key={item.key}> {item.text} <button onClick={this.props.removeItem} value={item.key}> x </button></li>
});
return <ul>
{listItem}
</ul>
}
});
现在
Body
应该获得列表的键值,这样我就可以将其从状态中删除,最好的方法是什么?目前我没有使用任何体系结构。在您的TodoItems中,您可以使用分配给onClick
的内联函数中的项键调用它,而不是将removietem
直接设置为onClick
return <li key={item.key}> {item.text} <button onClick={()=>this.props.removeItem(item.key)} value={item.key}> x </button></li>
return{item.text}this.props.removietem(item.key)}value={item.key}>x
在TodoItems中,您可以使用指定给onClick
的内联函数中的项键调用它,而不是将removietem
直接设置为onClick
return <li key={item.key}> {item.text} <button onClick={()=>this.props.removeItem(item.key)} value={item.key}> x </button></li>
return{item.text}this.props.removietem(item.key)}value={item.key}>x
好吧,假设您正在使用项目的键作为删除的标识符,在子项中,您将有以下内容:
var TodoItems = createClass ({
render:function(){
var listItem = this.props.items.map((item) =>{
return <li key={item.key}> {item.text} <button onClick={() => this.props.removeItem(item.key)} value={item.key}> x </button></li>
});
return <ul>
{listItem}
</ul>
}
});
因此,在子函数中,您将使用该项的键作为参数调用属性函数,然后在父函数中,您将使用该键从状态项数组中删除所有项(如您所见,这使用ES6)
在React中,您不应该直接改变状态,但不要担心set state调用不会,因为
filter
会返回一个新数组好吧,假设您正在使用项的键作为移除的标识符,在子项中,您将有以下内容:
var TodoItems = createClass ({
render:function(){
var listItem = this.props.items.map((item) =>{
return <li key={item.key}> {item.text} <button onClick={() => this.props.removeItem(item.key)} value={item.key}> x </button></li>
});
return <ul>
{listItem}
</ul>
}
});
因此,在子函数中,您将使用该项的键作为参数调用属性函数,然后在父函数中,您将使用该键从状态项数组中删除所有项(如您所见,这使用ES6)
在React中,您不应该直接改变状态,但不要担心set state调用不会,因为
filter
返回一个新数组可能的重复。谢谢您的回答和解释,这很有意义。所以使用过滤器没有什么错吗?不,过滤器非常好:)只要确保使用类似Babel的东西将其转换成漂亮的普通javascript,这样它就可以与旧浏览器兼容感谢您的回答和解释,这很有意义。所以使用过滤器没有什么错吗?不,过滤器非常好:)只要确保使用类似Babel的东西将其转换成漂亮的普通javascript,这样它就可以与旧浏览器兼容