【发布时间】:2019-10-14 19:34:46
【问题描述】:
我想创建一个尽可能通用但现在不起作用的函数。
我有两种情况:
-
检查一个状态的状态是不是空或真,如果我的项目等于他,我想通过调用
李>resetState()重置他并设置为假和空字符串 检查一个状态的状态是否不为空,如果我的项目等于他,我想通过调用resetState()和空字符串来重置他
我的问题是:我尝试将stateItem.checkedA 替换为stateItem.item 之类的东西以避免重复但对我不起作用,是否有可能对此做出反应?
这就是我所拥有的:
const [stateBoolean, setStateBoolean] = React.useState({
checkedA: false,
checkedB: false
});
const [stateItem, setStateItem] = React.useState({
checkedA: "",
checkedB: "toto",
checkedC: "onlyHere not in Boolean"
});
const check = (listState) => {
listState.map(item => {
(stateBoolean.checkedA === true || stateItem.checkedA !== "") &&
item === "checkedA"
? (resetChange("checkedA", "stateItem"),
resetChange("checkedA", "stateBoolean"))
: null;
(stateBoolean.checkedB === true || stateItem.checkedB !== "") &&
item === "checkedB"
? (resetChange("checkedB", "stateItem"), resetChange("checkedB", "stateBoolean"))
: null;
stateItem.checkedC !== "" && item === "checkedC"
? resetChange("checkedC", "stateItem")
: null;
});
};
我的预期,但没有工作:
const checkWanted = (listState) => {
listState.map(item => {
(stateBoolean.item === true || stateItem.item !== "") &&
(item === "checkedB" || item === "checkedA")
? (resetChange(item, "stateItem"), resetChange(item, "stateBoolean"))
: null;
stateItem.checkedEOther !== "" && item === "checkedEOther"
? resetChange(item, "stateItem")
: null;
});
};
有什么想法吗?
【问题讨论】:
标签: reactjs state generalization