useState() 不使用 setter 函数更新值

时间:2021-04-05 10:25:51

标签: react-native

我有

function Meal(props) {
    const [isFavorite, setIsFavorite] = useState(false);

    const setFavorite = () => {
        setIsFavorite(currentStatus => !currentStatus);
    };
    render (etc...)
}

调用 setFavorite 时,isFavorite 不会改变。为什么? 我已经阅读了很多关于 StackOverflow 的问题,但我仍然不明白其中的逻辑。我尝试使用 useEffect 但没有成功。

1 个答案:

答案 0 :(得分:0)

试试这样:

> function Meal(props) {
>        const [isFavorite, setIsFavorite] = useState(false);
>    
>        const handleFavorite = () => {
>            setIsFavorite(!isFavorite);
>        };
>        render (etc...)    }

handleFavorite 函数触发动作的地方(如果它被称为 onClick、onChange 或其他)