Javascript 如何在动态创建的子对象上设置道具
在JSX语法中,我可以轻松地设置子道具以跟随父道具的状态,如:Javascript 如何在动态创建的子对象上设置道具,javascript,reactjs,Javascript,Reactjs,在JSX语法中,我可以轻松地设置子道具以跟随父道具的状态,如: class Parent extends React.Component { constructor(props) { super(props); this.state = { attr1: 10 } } render() { return ( <div> <Child prop1
class Parent extends React.Component {
constructor(props) {
super(props);
this.state = { attr1: 10 }
}
render() {
return (
<div>
<Child prop1={this.state.attr1} />
</div>
)
}
}
这段代码不起作用,而且我已经读到setProps已被弃用。另一种方法是使用绑定到this.state.data
的props~创建子级,如果数据结构为obj:
React.createElement(
childrenListWithClasses[item['childrenClass']],
{ key: item['id'], data: this.state.data[item['id']] }
)
但它似乎试图在执行时计算this.state.data[item['id']]
我找到了一个使用cloneWithProps的建议,但这似乎不正确。。。如果JSX可以改变孩子的道具,为什么我不能用代码呢?另外,如果我想让我的子元素在更改道具时平稳过渡,则子元素的生命周期将被忽略。可能需要redux,您以前是否尝试过redux,或者您一般不想使用redux?ChildrenListWithClass的目的是什么?你能给我们看一下代码吗?@Lau我试图让它尽可能简单。@Wijebandara,childrenListWithClasses是一个对象/散列/字典,允许人们通过配置引用带有字符串的类/组件。`从“./Example.jsx”const widgets={'Example':Example}导入示例导出默认小部件`可能需要redux,您以前是否尝试过redux,或者您一般不想使用它?ChildrenListWithClass的目的是什么?你能给我们看一下代码吗?@Lau我试图让它尽可能简单。@Wijebandara,childrenListWithClasses是一个对象/散列/字典,允许人们通过配置引用带有字符串的类/组件。`从“./Example.jsx”const widgets={'Example':Example}导入示例导出默认小部件`
React.createElement(
childrenListWithClasses[item['childrenClass']],
{ key: item['id'], data: this.state.data[item['id']] }
)