我的状态中有一个数组,我想设置数组特定值。请让我知道setState
constructor(){
super()
this.state = {
data: [
{
name: '',
email: '',
phone: ''
}
]
}
}
<TextInput
style={styles.inputTextCol}
value={this.state.data.name}
onChangeText={(value) => this.setState({ data[0].name: value })}
/>
答案 0 :(得分:1)
添加一个处理它的功能,复制数组,更改值和更新状态。
由于数据是数组,因此您也无法添加<uses-permission android:name="android.permission.INTERNET"/>
。
value={this.state.data.name}
这是您有三个输入时应该做的回答。您无需添加三种方法,而在文本输入中放置const handleOnChange = value => {
const data = [...this.state.data];
data[0].name = value;
this.setState({data});
}
const { data } = this.state;
<TextInput
style={styles.inputTextCol}
value={data[0].name}
onChangeText={handleOnChange}
/>
并将整个name
传递给event
。因此,您可以获取输入的名称,然后只需更新状态中的该元素即可:
handleOnChange
答案 1 :(得分:0)
const data = [...this.state.data]; //we are making copy of array instead using its reference
data[0].name = 'changedValue'; //then on our copy we make changes
this.setState({data}}; //then we set changed array back to the state.
答案 2 :(得分:0)
<p:messages id="messages" for="allMessages" showDetail="true" autoUpdate="true" closable="true"/>
<f:metadata>
<f:viewAction action="#{myBean.onLoad()}"/>
</f:metadata>
答案 3 :(得分:-1)
<TextInput
style={styles.inputTextCol}
value={this.state.data.name}
onChangeText={(value) => this.setState({ data: [{...this.state.data[0], name: value}] })}
/>