реагировать на собственную ошибку: "ничего не было возвращено из рендера" - PullRequest
0 голосов
/ 27 марта 2020

Это моя функция выхода, которая должна перенаправлять пользователя на экран входа в систему после выхода из системы. Но это не работает, и я получаю ошибку «ничего не было возвращено из этого рендера».

const signout= async() => {
    setShowLoading(true);
    try {
        const a= await auth().signOut().then(()=>{
            console.log(a);
            setUser(null)
            setShowLoading(true)
            if(!user)
            {
                return navigation.navigate('Login')
            }

           } 
        );

    }
     catch (e) {
        setShowLoading(false);
        Alert.alert(
            e.message
        );
    }
};

, и это мой возврат в функцию

return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
        <Text>Welcome {user.email}</Text>
        <Button title="logout" onPress={()=>signout()}/>
        {showLoading &&
                <View style={styles.activity}>
                    <ActivityIndicator size="large" color="#0000ff" />
                </View>
            }
    </View>
);

1 Ответ

0 голосов
/ 27 марта 2020

Ничто не было возвращено из функции рендеринга, это означает, что один из ваших Компонентов не вернул ему ничего для рендеринга. В случае вашего кодового блока, в случае, когда есть пользователь, ничего не возвращается. Либо вы отредактируете метод renderMethod для возврата на главный экран, либо вы можете перемещать пользователя на другую страницу, прежде чем пользователь будет установлен или отменен в зависимости от ваших требований. В любом случае, реакция должна что-то отображать на экране, иначе она выдаст ошибку, подобную этой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...