如何在React Native中从异步函数获取值?

3
function CategoryCard (props) {

    const [done, setDone] = React.useState(null);
    let check;

    React.useEffect(() => {
        async function checkData() {
            check = await getData(props.path);
            // prints CORRECTLY
            console.log(check);
        }
        checkData();
    //prints INCORRECTLY
        console.log(check);
        setDone(true);
    }, []);

    return (

        <View>
        {done ? (
            <Text>{check}</Text>
        ):(
            <View style={[styles.container, styles.horizontal]}>
                <ActivityIndicator size="large" color="#99ff99" />
            </View>
        )}
        </View>
    );
}

如何在React Native中从异步函数中获取值到常规函数?
在上面的代码中,第一个console.log打印了预期的值,但第二个console.log输出undefined,就好像异步函数对变量check没有产生任何影响。
我需要从getData(props.path)获取check的值,以便将其显示在

1
将您的数据放入状态中并更新该状态。 - Prateek Thapa
1个回答

6

将其置于状态中。

function CategoryCard (props) {

    const [check, setCheck] = React.useState(null);

    React.useEffect(() => {
        async function checkData() {
            const data = await getData(props.path);
            setCheck(data);
        }
        checkData();

    }, []);

    return (

        <View>
        {check ? (
            <Text>{check}</Text>
        ):(
            <View style={[styles.container, styles.horizontal]}>
                <ActivityIndicator size="large" color="#99ff99" />
            </View>
        )}
        </View>
    );
}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接