如何将我的对象数组的{index}设置为this.setState?

时间:2019-01-18 20:31:12

标签: reactjs react-native

现在,当有人按下“ onPress”时,我想做的是改变状态。 但是,在我的代码中,我需要{index}或其他内容来标识每个状态。

那么,该怎么做?

请你教我。

const Lists =[
  { name: aaa, note: AAA},
  { name: bbb, note: BBB},
  { name: ccc, note: CCC}, 
 ]

state = {
  isVisible0: false,
  isVisible1: false,
  isVisible2: false,
}

///

renderList(){
  return Lists.map((value,index) => {
   return 
   ////
   //
   /
<TouchableOpacity onPress={() =>  {this.setState({ isVisible{index}:    
 true })}}>

</TouchableOpacity>
})
}

3 个答案:

答案 0 :(得分:0)

尝试使用模板文字

<TouchableOpacity onPress={() => this.setState({ [`isVisible${index}`]: 
true })}>

答案 1 :(得分:0)

更改

renderList(){
return Lists.map((value,index) => {
   return 
   ////
   //
   /
<TouchableOpacity onPress={() =>  {this.setState({ isVisible{index}:    
 true })}}>

</TouchableOpacity>
})
}

收件人

  renderList(){
return Lists.map((value,index) => {
   return 
   ////
   //
   /
<TouchableOpacity onPress={() =>  {this.setState({ ["isVisible" + index]:    
 true })}}>

</TouchableOpacity>
})
}

答案 2 :(得分:0)

请参见沙盒示例:https://postgis.net/docs/ST_GeomFromGeoJSON.html

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;

    @Autowired
    @Lazy
    private IGalaxyCommand iGalaxyCommand;