反应本机儿童父母沟通

2024-02-24

使用 pass 道具,父子沟通似乎没有问题:

mainpage.ios.js代码:

var OtherPage = require('./otherpage');
<OtherPage value={2}/>

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


您将传递一个回调,然后通过 props 传递它,随着您的设置变得更高级,可能会利用 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 <Other data={data} onChange={this.onChange}></Other>;
  }
  
}

class Other extends Component {
  render() {
    const { data } = this.props;
    console.log(`Other Component Data is ${data}`);
    return (
      <TouchableOpacity onPress={() => {this.props.onChange('Success!')} }>
        <Text style={{fontSize: 30}}>{data}</Text>
      </TouchableOpacity>
    );
  }
}

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

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 <Other data={data} onChange={this.onChange}></Other>;
  }
  
}

const Other = ({ data, onChange }) => {
  return (
      <TouchableOpacity onPress={() => {onChange('Success!')} }>
        <Text style={{fontSize: 30}}>{data}</Text>
      </TouchableOpacity>
  );
}

EDIT现在你可能应该只使用功能组件和钩子,React 网站上有很多关于这方面的文档,但想法是相似的:-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

反应本机儿童父母沟通 的相关文章

随机推荐

  • 是什么阻止我在我的开发盒上专门使用 IIS Express?

    我只阅读了一些有关 IIS Express 的内容 并且正在阅读并立即安装 看来我应该能够正确卸载 IIS 并在 Visual Studio 2010 SP1 中开发 调试基于 Web 服务器的技术时使用 IIS Express 这是一个明
  • Facebook 不从 og:image 加载图像

    它已经可以工作了 但今天我很惊讶 当我尝试分享链接时 Facebook 没有显示来自 og image 元标记的图像 from 脸书调试器 http developers facebook com tools debug og object
  • 使用 Google 脚本永久删除我的电子邮件的脚本

    Gmail Users Messages remove userId id 是如何工作的 电子邮件的 ID 是什么 永久删除电子邮件的正确功能是什么 就我而言 我想立即明确地删除所有已发送的电子邮件 这是我从某人那里获取的一些代码 只是带有
  • Python 和“re”

    我在 python 中关于 Regex 的教程解释了如何在 python 中使用 re 模块 我想从 A 标签中获取 URL 因此知道 Regex 我编写了正确的表达式 并在我选择的正则表达式测试应用程序中对其进行了测试并确保它工作了 当放
  • 如何在 OSX Catalina (10.15) 中使用 Wireshark 捕获 USB 流量

    我正在尝试让 Wireshark USB 捕获工作 显然 Catalina 之前的技巧就是调出界面 以便 Wireshark 可以看到它 https forums developer apple com thread 95380 https
  • ggplot2 具有多个参数的绘图函数

    我得到了这个功能 change lt function score d k p k score 1 1 k d p 我想在一个图中绘制该函数对于一系列参数 d 和 p 的所有结果 在 r 基数中 就是这样 parameters lt c 1
  • Django:如何重定向到表单起源的页面

    在我的 Django 应用程序中 我有多个页面显示一个链接 该链接加载一个显示表单的新页面 提交表单后 重定向到访问该表单的原始页面的最简洁方法是什么 原始页面 gt 表单页面 gt 原始页面 使用下一个变量似乎不太优雅 因为我必须将其设置
  • 证书基本约束的路径长度

    对于 CA 类型的基本约束 路径长度为 0 和 None 是否相同 澄清一下 路径长度为 0 是否意味着 CA 不能颁发证书 而路径长度为 none 是否意味着它可以颁发无限数量的证书 取自RFC 5280 https www rfc ed
  • 为什么人们在 PHP 框架中使用单例

    好吧 伙计们 我很难理解为什么需要单例 让我们举一个真实的例子 我有一个 CMS 框架我需要一个记录一些信息的类 让我们继续使用 PHP Example class Logger private logs array public func
  • 插入特定行数

    我正在尝试插入特定数量的行 现在我正在使用下面的代码插入 4 行 我正在尝试编写一行代码 该代码将根据特定单元格中的数字插入特定数字或行 例如 如果我想插入 4 行 并且单元格 A2 是我可以更改要添加的行数的单元格 那么我将使用什么代码根
  • ld:找不到 -lgcc_s.10.5 Xcode 的库

    ld library not found for lgcc s 10 5 collect2 ld returned 1 exit status Command Developer Platforms iPhoneSimulator plat
  • 为什么消费者在使用 Java 客户端 API 在 DC/OS 上消费来自 Kafka 的消息时会挂起?

    我在 AWS 上的 DC OS Mesos 集群上安装了 Kafka 启用三个代理并创建一个名为 topic1 的主题 dcos kafka topic create topic1 partitions 3 replication 3 然后
  • 从 ES6 map() 函数返回多个值

    假设我有这样的事情 let values 1 2 3 4 let newValues values map v gt return v v console log newValues 1 4 9 16 非常简单 现在 如果我想为每个对象返回
  • 如何使用 useEffect 设置参数并避免无限渲染?

    我在用着react navigation我有一个动态标题 所以我使用setParams并将其放在标题中 const MyComponent navigation gt useEffect gt const setParams state n
  • 为什么属性名称不能是 Python 关键字?

    Python 中对属性访问的语法有限制 至少在 CPython 2 7 2 实现中 gt gt gt class C object pass gt gt gt o C gt gt gt o x 123 Works gt gt gt o if
  • 如何对列表中第一个值相同的元组求和?

    我有一个元组形式的股票和头寸列表 正值表示买入 负值表示卖出 例子 p AAPL 50 AAPL 50 RY 100 RY 43 如何对股票头寸求和以获得当前持有量 result AAPL 0 RY 57 这个怎么样 您可以阅读有关coll
  • 如何在pygame中创建子弹? [复制]

    这个问题在这里已经有答案了 我知道有几个关于此的主题 但我仍然不知道如何让我的船发射子弹 我想添加到我的 MOUSEBUTTONDOWN 中 当音效播放时 从船上发射子弹 谢谢您的帮助 import sys pygame pygame mi
  • Resharper:文件头文本不会自动用于新文件

    我正在使用 VS2010 Resharper 8 0 1 StyleCop 4 7 45 我在 resharper 选项中定义了一个文件头文本 并 错误地 假设它将在重构时使用 使用 将类移动到新文件以匹配文件名 功能 这也不使用可以修改的
  • Java InputStream.read(byte[], int, int) 方法,如何阻塞直到读取了确切的字节数

    我正在编写一个简单的客户端 服务器网络应用程序来发送和接收固定尺寸通过 TCP 套接字发送消息 到目前为止 我一直在使用getInputStream and getOutputStream 的方法Socket类来获取流 然后调用read b
  • 反应本机儿童父母沟通

    使用 pass 道具 父子沟通似乎没有问题 mainpage ios js代码 var OtherPage require otherpage