Я хочу создать функцию, которая может быть как можно более общей, но сейчас она не работает.
У меня есть два случая:
Проверьте, есть ли состояниесостояния не является пустым или истинным, и если мой элемент равен ему, я хочу сбросить его, вызвав resetState()
и установив значение false и пустую строку
Проверьте, является ли состояниесостояния не является пустым, и если мой элемент равен ему, я хочу сбросить его, вызвав 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;
});
};
Есть идеи?