Установить причину состояния использовать повторную визуализацию памятки - PullRequest
0 голосов
/ 28 мая 2020

Вот код, понятия не имею, почему Mem повторно визуализируется после установленного состояния, поскольку это запомненный компонент, или если я хочу запомнить компонент с установленным состоянием, я должен использовать useRef? что глупо ??


const Demo = () => {
    console.log("render")

    const data = LoadSomeData();

    return (<>{data.id}</>)
}

const Mycomp = ({...props}) => {

    const [showSearch, setShowSearch] = useState(false);

    const Mem = useMemo(() => <Demo />, [props.iwandToReloadData]);

    return (
        <>
        { showSearch ? 
            <button onClick={()=>setShowSearch(false)}>Back</button>
        :
        <>
            {Mem}
            <button onClick={()=>setShowSearch(true)}>Search</button>
        </>
        }
        </>
    )
}

export default Mycomp;

1 Ответ

0 голосов
/ 28 мая 2020

Обратитесь к комментарию Тони Нгуена, это потому, что я использую условный рендеринг для запомненного компонента, поэтому он будет запускать размонтирование запомненного компонента. Следовательно, ничего нельзя запомнить.

решение использует css, чтобы скрыть его, а не отображать его для моего случая

...