Я пытаюсь отключить кнопку редактирования, когда нажимаю кнопку «Завершить», но она не работает. Я перешел в состояние в атрибуте disabled, но он, похоже, ничего не делает, не знаю, может быть, из-за асинхронного характера setState. Я передал обратный вызов при вызове метода setState, и кажется, что данные регистрируются случайным образом. Может кто-нибудь подсказать, что нужно сделать?
class App extends Component {
state = {
buttons: {
id: "test"
}
};
handleCheckBox = id => {
let buttons = Object.assign({}, this.state.buttons);
buttons.id = !this.state.buttons[id]
this.setState({buttons}, ()=>console.log(this.state.buttons));
}
render() {
return (
<div>
{todos.map(todo => (
<List key={todo.id}>
<ListItem
role={undefined}
dense
button
>
<Checkbox
onClick={()=>this.handleCheckBox(todo.id)}
checked={todo.complete}
tabIndex={-1}
disableRipple
/>
<ListItemText primary={todo.text} />
<ListItemSecondaryAction>
<Button mini color="secondary" variant="fab" disabled={this.state.buttons[todo.id]}>
<Icon>edit_icon</Icon>
</Button>
ListItemSecondaryAction>
</ListItem>
</List>
))}
</div>
);
}
}