我正在努力使我的React-Native
更具动态性,并通过映射数组来构建组件。我试图动态分配道具值,因为它们已经在括号内。
有没有办法在下面完成这个例子?我可以以某种方式逃避参数或双重支持我需要的值吗?
// Sample array
fieldArray = [
{"DefaultValue": "ABCDEF",
"Name": "Field1"},
{"DefaultValue": "123456",
"Name": "Field2"}
]
// Old way having static defined components
<TextInput
value={this.state.Field1}
onChangeText={() => {}}
/>
<TextInput
value={this.state.Field2}
onChangeText={() => {}}
/>
我想做的是:
{fieldArray.map((x) =>
<TextInput
value={this.state.{x.Name}} // <-- This is where I am stuck, can I double bracket in a .map()??
onChangeText={() => {}}
/>
)}
在ES 6中,您可以像这样指定文字:
{fieldArray.map((x) =>
<TextInput
value={this.state[x.Name]} // <-- This is how you do it
in a .map()??
onChangeText={() => {}}
/>
)}
在您的情况下,您需要注意两件事
{fieldArray.map((x, index) =>
<TextInput
key={"Key-"+index}
value={this.state[x.Name]}
onChangeText={() => {}}
/>
)}