React-Native:在状态更改时重新呈现应用程序(在身份验证状态中更改)

时间:2018-05-28 00:33:27

标签: authentication react-native render

目前,我正在检查用户是否在应用启动期间获得授权,并根据结果显示应用。 但是,用户可以在使用应用程序时登录或注销,我想在这些情况下重新渲染应用程序,以便我的逻辑停留在一个位置(即应用程序启动时)。
有没有办法实现这一目标?

2 个答案:

答案 0 :(得分:0)

默认情况下,当state更改时,render功能会再次调用。您可以根据render更改state功能,然后当state发生更改时,view会发生更改...例如:

render() {
    return (
         <View>
             {
                 this.state.authorized == true ?
                     <Text>authorized</Text>
                 :
                     <Text>unauthorized!</Text>
             }
         </View>
    )
}

所以当this.state.authorized发生变化时,render函数会根据view显示不同的state

但是如果您想在state更改时重新启动应用,则可以使用React Native Restart包并在需要时重新启动应用。由于RN生命周期中有许多state次更改,您的应用会频繁重启,因此无法在每次state更改时重新启动您的应用。我希望它会对你有所帮助。

答案 1 :(得分:0)

render() {
    const { authorised } = this.state;
    const userMessage = authorised ? "authorized" : "unauthorized";

    return (
         <View>
             <Text>{ userMessage }</Text>
         </View>
    )
}

您还可以使用道具来维护用户的状态,并根据道具值渲染组件/消息。