Установите для привязки UpdateSourceTrigger
значение PropertyChanged
(и обратите внимание, что Mode="TwoWay"
является избыточным, поскольку это значение по умолчанию для этого свойства):
<CheckBox IsChecked="{Binding Select, UpdateSourceTrigger=PropertyChanged}" />
Не знаете, почему это необходимо , поскольку значение DefaultUpdateSourceTrigger
свойства FrameworkPropertyMetadata
свойства зависимостей CheckBox.IsCheckedProperty
уже PropertyChanged
.
Изменить
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>
})
}
Смотрите пример песочницы: 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>
);
});
}
}
. Попробуйте использовать шаблонный литерал
<TouchableOpacity onPress={() => this.setState({ [`isVisible${index}`]:
true })}>