undefined

bokuweb.me

React NativeでNavigatorIOSに渡したpropsが更新されない

React NativeのNavigatorIOSで管理されるシーンについては以下のようにpassPropspropsを渡すんだけど、渡した先のthis.propsは更新されない。例えば、以下でthis.props.hogeが更新されてもHomeScreen内のthis.props.hogeは更新されない。issueにも上がっていて、議論されているが、単純にprops取得関数を渡してやるのがひとまず簡単な回避策。

  render() {
    return (
        <NavigatorIOS
          ref="mainNav"
          initialRoute={{
            component: HomeScreen,
            title: 'Home',
            passProps: this.props.hoge
          }}
        />
    );
  }

以下のように。getHogeを渡してやる。

  getHoge() {
    return this.props.hoge;
  }

  render() {
    return (
        <NavigatorIOS
          ref="mainNav"
          initialRoute={{
            component: HomeScreen,
            title: 'Home',
            passProps: this.getHoge.bind(this)
          }}
        />
    );
  }