gpt4 book ai didi

reactjs - 如何在 React 中创建动态 prop 名称?

转载 作者:行者123 更新时间:2023-12-03 13:00:01 24 4
gpt4 key购买 nike

是否可以动态创建 Prop 的名称?例如:

let dynamicPropName = "someString";

<MyComponent dynamicPropName="some value" />

这样在 MyComponent 内部,this.props.someString 就存在。

最佳答案

如果您使用es6,您可以定义动态属性:

let dynamicProps = {"dynamicKey":"someString", "dynamicKey2":"someString"};

let someVariable = "xyz";
dynamicProps[someVariable] = value;

然后使用扩展运算符:

<MyComponent {...dynamicProps} />

在 MyComponent 内部 -

let props = {...this.props};

现在您可以在 props 上使用 Object.keys 来获取所有动态 prop 名称。

编辑:添加了一个示例

class Test extends React.Component {

renderFromProps() {
return Object.keys(this.props)
.map((propKey) =>
<h3>{this.props[propKey]}</h3>
);
}
render() {
return (
<div>
<h1>One way </h1>
<hr/>
<h3>{this.props.name}</h3>
<h3>{this.props.type}</h3>
<h3>{this.props.value}</h3>
<hr/>
<h1> Another way </h1>
<hr/>
{ this.renderFromProps()}
</div>
);
}

}

const dynamicProps = { name:"Test", type:"String", value:"Hi" };

ReactDOM.render(
<Test {...dynamicProps} />,
document.getElementById('root')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root">
</div>

关于reactjs - 如何在 React 中创建动态 prop 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40868189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com