我想在选择新过滤器时更新状态。初始状态显示我瞄准的对象结构。例如,我添加了一个过滤器选择(例如“f2”),每个过滤器的标签是固定的,所以我们可以忽略它,但值可能是“va”。这很好,但是当我想将“f2”的值更改为“vb”时,我现在在我的状态 {“f2”:“va”} 和 {“f2”:“vb”} 中有两个条目,而我宁愿第一个被第二个覆盖。
const [filterValues, setFilterValues] = useState([{"f1":["l","v"]}]);
const handleChange = (filter, label, value) => {
setFilterValues([
...filterValues,
{[filter]: [label, value]}
]);
};
我尝试调用 setFilterValues 两次(一次将条目映射到我的条件)来解决问题,但后来我什至根本没有更新状态:
const handleChange = (filter, label, value) => {
setFilterValues([
...filterValues,
{[filter]: [label, value]}
]);
let key = filter
setFilterValues(
filterValues.map(
el => el.key == key? { [key]: [label, value] } : el
)
)
};
我对反应有点陌生,所以也许我没有得到更新功能组件状态的基本知识。有人可以帮我吗?谢谢你!