因此,我可以在路由器定义的应用程序根目录中使用onEnter / onExit方法,它可以很好地工作:

<Scene key="arena" hideNavBar={true}  onEnter={() => console.log("Entered")} component={ArenaPage} />

有什么办法可以在组件本身内部执行此操作,以便更新本地状态?
export default class ArenaPage extends Component {
    onEnter () {
        this.setState(...)
    }
    // Render blah blah blah...
}

如果不可能,从场景导航离开时是否有任何条件触发componentWillUnmount(Actions。[key])

最佳答案

您可以使用onEnteronExit方法获取所需的结果。然后依次可以访问this

import { Actions } from 'react-native-router-flux'

class Home extends Component {
  static onEnter() {
     // homeSceneKey needs to be the same key that you use to configure the Scene
     Actions.refs.homeSceneKey.getWrappedInstance().myFunction()
  };

  myFunction = () => {
     // have access to this (props and state) here
     this.blah = "what ever you want to do"
  }
}

希望这可以帮助

09-30 10:36