如何在状态React Native中设置数组特定值

时间:2019-12-09 08:14:57

标签: reactjs react-native

我的状态中有一个数组,我想设置数组特定值。请让我知道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  })}
/>

4 个答案:

答案 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}] })}
/>