Я пытаюсь изучить immutablejs с реакцией. У меня есть список элементов с флажком для каждого элемента. Я хочу, чтобы такие функции, как при щелчке по галочке, должны отображаться галочка, а также некоторый текст, например, отмеченный. Я пробовал, но когда я проверяю первый флажок, проверяется второй флажок.Как я могу установить флажок и снять флажок с помощью неизменяемых js
Вот мой код
class AddRemoveCheckbox extends React.Component{
constructor(){
super();
this.state = {
checked: Immutable.List([])
}
}
handleChange(e, key) {
console.log('key', key);
const { checked } = this.state;
if (e.target.checked) {
this.setState({
checked: checked.push(key)
})
} else {
this.setState({
checked: checked.pop(key)
})
}
}
render() {
console.log('items');
const { checked } = this.state;
console.log('checked', checked.has('0'));
const items = this.props.items.map((item,key) => {
return (
<li key={key} style={{ listStyle: 'none' }}>
<input
type="checkbox"
checked={checked.has(key)}
onChange={(e)=>this.handleChange(e, key)}
/>
{item}
</li>
)
})
return (
<div>
Items:
{items}
{ checked.has('0') ? 'Checked' : 'Unchecked'}
</div>
);
}
}
ReactDOM.render(<AddRemoveCheckbox items={['item1', 'item2'] } />, document.getElementById('root'));
У меня есть этот код на jsbin слишком
http://jsbin.com/fusoxos/edit?js,console,output
Благодарим за помощь, но при этом не изменяется текст. – Serenity
Ах, еще одна строка кода, которую нужно было изменить. – Scimonster
Я попытался содержит (0), но этот обработанный только первый флажок установлен. Если установлен второй флажок, я не получаю проверенный текст. – Serenity