Reactjs 复选框状态未根据重复使用状态更改
我有一个哑组件,它接收一堆对象并呈现一个复选框。哑组件的外观如下所示:Reactjs 复选框状态未根据重复使用状态更改,reactjs,checkbox,redux,react-redux,Reactjs,Checkbox,Redux,React Redux,我有一个哑组件,它接收一堆对象并呈现一个复选框。哑组件的外观如下所示: // imports const FilterList = ({ filterTitle, filters, onFilterChange }) => { console.log(`FILTERS: ${JSON.stringify(filters)}`); return ( <div> <Header colorIndex="light-2" size="small"&
// imports
const FilterList = ({ filterTitle, filters, onFilterChange }) => {
console.log(`FILTERS: ${JSON.stringify(filters)}`);
return (
<div>
<Header colorIndex="light-2" size="small">
<Label margin="none">
{filterTitle}
</Label>
</Header>
<List>
<ListItem direction="column" align="start">
{filters &&
filters.map(filter => {
console.log(filter);
return (
<CheckBox
key={filter.name}
label={filter.name}
value={filter.name}
checked={filter.checked}
onChange={onFilterChange}
/>
);
})}
</ListItem>
</List>
</div>
);
};
FilterList.propTypes = {
.....
};
export default FilterList;
export const find = [
{
type: 'find',
name: 'Apartment',
searchType: 'text',
checked: false,
},
{
type: 'find',
name: 'Assisted Living',
searchType: 'text',
checked: false,
}
];
现在我有了一个容器,它处理复选框的onChange事件,并相应地切换它们的选中状态。现在,我正确地处理onChange事件,因为我看到checked属性正确地反映在应用程序状态中
我不知道会发生什么,但存储中的更改不会反映或传播回哑组件,并且复选框根本不会更改状态
以下是指向我的容器、操作和减速器文件的链接:
1个集装箱:
2行动:
3减速器:
欢迎提供任何帮助、建议或替代方法
谢谢大家! 嗯,您的问题与react或redux无关,而是与普通html有关。如果包含任何值(包括false)的checked属性,它将呈现checked。所以,如果您的复选框应该被重新选中,您必须完全忽略checked属性
请看:非常感谢!检查的有趣属性是:我注意到一件奇怪的事情,在我的容器中,因为我正在通过redux更改应用程序状态,为什么我的React生命周期挂钩没有触发?我试过shouldComponentUpdate和componentWillReceiveProps,但都没有成功!