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

问题描述 投票:0回答:4

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

0
投票
constructor(){
  super()
  this.state = {
     data: [
       {
         name: '',
         email: '',
         phone: ''
       }
     ]
  }
}

const handleChange = (value) => {
  let data = [ ...this.state.data ]
  data[0].name = value
  this.setState({data})
}

<TextInput
   style={styles.inputTextCol}
   value={this.state.data.name}
   onChangeText={(value) => handleChange(value)}
/>

0
投票

添加一个处理它的功能,复制数组,更改值和更新状态。您也不能添加value={this.state.data.name},因为数据是数组。

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}
/>


-1
投票
<TextInput
   style={styles.inputTextCol}
   value={this.state.data.name}
   onChangeText={(value) => this.setState({ data: [{...this.state.data[0], name: value}] })}
/>
© www.soinside.com 2019 - 2024. All rights reserved.