Как установить {index} моего массива объектов в this.setState?

Установите для привязки UpdateSourceTrigger значение PropertyChanged (и обратите внимание, что Mode="TwoWay" является избыточным, поскольку это значение по умолчанию для этого свойства):

<CheckBox IsChecked="{Binding Select, UpdateSourceTrigger=PropertyChanged}" />

Не знаете, почему это необходимо , поскольку значение DefaultUpdateSourceTrigger свойства FrameworkPropertyMetadata свойства зависимостей CheckBox.IsCheckedProperty уже PropertyChanged.

0
задан ryonz 18 January 2019 в 20:31
поделиться

3 ответа

Изменить

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>
})
}
0
ответ дан Hemadri Dasari 18 January 2019 в 20:31
поделиться

Смотрите пример песочницы: https://codesandbox.io/s/wr6nk0w6l

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

class List extends Component {
  state = {
    isVisible0: false,
    isVisible1: false,
    isVisible2: false
  };

  render() {
    return Lists.map((value, index) => {
      return (
        <div onClick={() => this.setState({ [`isVisible${index}`]: true })}>
          Toggle {index} - status:{" "}
          {this.state[`isVisible${index}`] ? "true" : "false"}
        </div>
      );
    });
  }
}
.
0
ответ дан grenzbotin 18 January 2019 в 20:31
поделиться

Попробуйте использовать шаблонный литерал

<TouchableOpacity onPress={() => this.setState({ [`isVisible${index}`]: 
true })}>
0
ответ дан Jason Dela Torre 18 January 2019 в 20:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: