【问题标题】:React-native await useEffect functionsReact-native await useEffect 函数
【发布时间】:2021-02-14 12:41:59
【问题描述】:

我想从 Firestore 中检索一个字段,但我怎么能说等到 useEffect 的函数完成后才返回?

这是我的代码:

useEffect(() => {
      handlClick();
  }, []);

  const handlClick = async() => {
    setRestaurant([]);
    db.doc(idBranch).get().then(data => {
        const branchData = data.data();
        setRestaurant(brn => [...brn, branchData]);
    })
  }

  return (
    <View>
        <Text> Name: {restaurant.Name} </Text>
    </View>
  );

【问题讨论】:

    标签: firebase react-native google-cloud-firestore react-hooks use-effect


    【解决方案1】:

    这段代码可能会有所帮助:

    const [isHandleClickCall, setHandleClickCall] = useState(false);
    
    useEffect(() => {
        (async () => {
            await handlClick();
            setHandleClickCall(true);
        })();
    }, []);
    
    const handlClick = async () => {
        setRestaurant([]);
        db
            .doc(idBranch)
            .get()
            .then((data) => {
                const branchData = data.data();
                setRestaurant((brn) => [...brn, branchData]);
            });
    };
    
    return (
        isHandleClickCall && (
            <View>
                <Text> Name: {restaurant.Name} </Text>
            </View>
        )
    );
    

    【讨论】:

    • 还是什么都没有......他在handlClick完成之前调用了return
    猜你喜欢
    • 2019-07-27
    • 1970-01-01
    • 2017-10-31
    • 2021-10-20
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2020-09-02
    相关资源
    最近更新 更多