Сообщите исходное состояние компонента без предупреждения useEffect - PullRequest
1 голос
/ 23 апреля 2020

У меня есть простой компонент выбора даты с кнопками для предустановленных диапазонов дат.

date picker component with buttons for date range presets

Проблема в моем useEffect: я использую его для передачи начального состояния при рендеринге, но, конечно, React выдает предупреждение (« useEffect имеет отсутствующие зависимости »).

Есть хороший шаблон для этого?

const LAST_7 = "LAST_7";
let to, from, filter;

// figure out values for "from", "to", and "filter" (which is set to LAST_7 in case "from" and "to" are not in props)

const initial = {
    from,
    to,
    filter,
};

const [state, setState] = useState(initial);

useEffect(() => {
    props.onUpdate(from, to);
}, []);

const handleClick = (e) => {
    const filter = e.target.value;
    const { from, to } = getDatesFromFilterValue(filter);
    setState((prev) => ({ ...prev, from, to, filter }));

    props.onUpdate(from, to);
};
...