小编Yas*_*pta的帖子

useCallback Hooks 获取旧的状态值而不更新

我的回调在一次又一次调用后返回相同的状态

我是反应类中反应钩子的新手,我本可以使用 shouldcomponentupdate 并且可以解决这个问题

但是 usecallback 钩子中没有参数

import React, {
  useLayoutEffect,
  useState,
  useCallback,
  useEffect,
} from "react";
import { StyleSheet, Text, View, Platform, YellowBox } from "react-native";
import { HeaderButtons, Item } from "react-navigation-header-buttons";
import HeaderButton from "../components/HeaderButton";
import { Switch } from "react-native-paper";
import Colors from "../constants/Colors";
//check use callback value first

YellowBox.ignoreWarnings([
  "Non-serializable values were found in the navigation state",
]);

const FilterSwitch = ({ label, state, onChange }) => (
  <View style={styles.filterContainer}>
    <Text>{label}</Text>
    <Switch
      value={state}
      trackColor={{ true: …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-native react-hooks usecallback

6
推荐指数
1
解决办法
3075
查看次数

如何清理 useffect 调用中的函数?

所以我正在更新 useEffect 挂钩中的状态并收到此错误,如果我们在 useEffect 挂钩中使用 async/await 语法,我不知道如何使用清理功能

错误:警告:无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明应用程序中存在内存泄漏。要修复此问题,请取消 %s.%s 中的所有订阅和异步任务,这是一个 useEffect 清理函数,


  const getToken = async () => {
    const mytoken = await AsyncStorage.getItem("fb_token");
    if (mytoken) {
      navigation.navigate("Main", { screen: "Map" });
      setToken(mytoken);
    } else {
      setToken(false);
    }
  };
    getToken();

  }, [navigation]);```

How to update state and use clean up function should i declare this function outside hook but if i do that how would i use that function as a clean up?
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-native

0
推荐指数
1
解决办法
617
查看次数