Javascript 将子项值传递给父项

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

我正在学习react,想知道什么是将价值观从孩子传递给父母的最佳方式?这是我的部件

TodoItems->应将按钮的值传递给父级,以便我可以从状态中删除该项

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,这样它就可以与旧浏览器兼容