当前位置:  开发笔记 > IOS > 正文

React Native Child Parent通信

如何解决《ReactNativeChildParent通信》经验,为你挑选了1个好方法。

使用传递道具时,父子通信似乎没问题:

mainpage.ios.js代码:

var OtherPage = require('./otherpage');

然后在otherpage.ios.js我可以使用this.props.value来利用变量,但是如果我更新otherpage.ios.js上的值,它是如何传达回mainpage.ios.js的?



1> Braden Rockw..:

您将传递一个回调然后通过道具传递它,可能利用componentWillReceiveProps钩子,因为您的设置变得更高级.

如果你这样做很多,那么你应该使用Flux或Redux或类似的.

import React, {
  Component,
  TouchableOpacity,
  Text,
} from 'react-native';


class Main extends Component {

  constructor() {
    super();
    this.state = {
      data: 'default'
    }
  }

  onChange = (data) => {
    console.log(`Data changes to ${data} !`);
    this.setState({ data });
  }

  render() {
    const { data } = this.state;
    return ;
  }

}

class Other extends Component {
  render() {
    const { data } = this.props;
    console.log(`Other Component Data is ${data}`);
    return (
       {this.props.onChange('Success!')} }>
        {data}
      
    );
  }
}

此外,如果在知道辅助组件中不需要状态时使用静态组件,则可以构建更多可重用的功能组件:

class Main extends Component {

  constructor() {
    super();
    this.state = {
      data: 'default'
    }
  }

  onChange = (data) => {
    console.log(`Data changes to ${data} !`);
    this.setState({ data });
  }

  render() {
    const { data } = this.state;
    return ;
  }

}

const Other = ({ data, onChange }) => {
  return (
       {onChange('Success!')} }>
        {data}
      
  );
}

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有