【发布时间】:2018-06-30 22:29:57
【问题描述】:
我想要的是,基本上,当我点击复选框时,它应该只禁用那个特定的待办事项的编辑按钮,但是,当我点击复选框时,它会禁用待办事项列表的整个编辑按钮。有人可以推荐我吗?
class App extends Component {
state = {
disable: false
}
handleCheckBox = () => {
this.setState({disable: !this.state.disable})
}
render() {
const {data: {loading, todos}} = this.props;
if(loading) {
return null;
}
return (
<div style={{display: "flex"}}>
<div style={{margin: "auto", width: 400 }}>
<Paper elevation={1}>
<Form submit={this.createTodo}/>
<List>
{todos.map(todo => (
<ListItem
key={todo.id}
role={undefined}
dense
button
onClick={() => this.updateTodo(todo)}
>
<Checkbox
onClick={this.handleCheckBox}
checked={todo.complete}
tabIndex={-1}
disableRipple
/>
<ListItemText primary={todo.text} />
<ListItemSecondaryAction>
<Button mini color="secondary" variant="fab" disabled={this.state.disable}>
<Icon>edit_icon</Icon>
</Button>
<IconButton onClick={() => this.removeTodo(todo)}>
<CloseIcon />
</IconButton>
</ListItemSecondaryAction>
</ListItem>
</List>
))}
</List>
</Paper>
</div>
</div>
);
}
}
【问题讨论】:
-
你只有一个
disabled状态变量。也许您可以在您的todos上拥有一个disabled属性,或者在您的状态下保留一个包含所有禁用的待办事项的数组?
标签: javascript reactjs material-ui