APP->RN 参数无法接收

nieyt0条评论 5 次浏览

APP->RN 参数无法接收

  • 首先我们看一般情况下我们会把createStackNavigator生成的对象,作为AppRegistry.registerComponent的入口文件
 const AppWithDebug = createStackNavigator({
  Home: {
    screen: App
  },

});
AppRegistry.registerComponent(appName, () => AppWithDebug);

这个时候react-navigation在接收到initialProps之后并不会向下传递,而是只向下传递自身的navigation对象内容因此这个时候我们在组件中就拿不到原生传过来的initialProps内容了。

  • 解决方案:隔离入口,不再使用createStackNavigator的结果去作为AppRegistry.registerComponent的入口,如下

const AppWithDebug = createStackNavigator({
  Home: {
    screen: App
  },

});

class AppEntry extends Component {
    render() {
      return <AppWithDebug screenProps={ this.props }/>
  }
};

AppRegistry.registerComponent(appName, () => AppEntry);
  • react-navigation不再处于项目入口的位置,入口处由一个包含了导航组件的组件代替。此时我们在AppEntry组件中就可以直接通过this.props拿到initialProps的值了,再通过screenProps向下传递即可,AppWithDebug中可以通过this.props.screenProps获取initialProps的相关内容。

发表评论

分类目录

2019年十一月
« 10月    
 123
45678910
11121314151617
18192021222324
252627282930  

近期评论