React Native:发现默认参数children【特殊的prop】

根据react中文网教程:添加交互 -- React 中文文档

其中添加交互的响应事件部分有一段代码

代码如下:

javascript 复制代码
export default function App() {
  return (
    <Toolbar
      onPlayMovie={() => alert('Playing!')}
      onUploadImage={() => alert('Uploading!')}
    />
  );
}

function Toolbar({ onPlayMovie, onUploadImage }) {
  return (
    <div>
      <Button onClick={onPlayMovie}>
        Play Movie 
      </Button>
      <Button onClick={onUploadImage}>
        Upload Image
      </Button>
    </div>
  );
}

function Button({ onClick, children }) {
  return (
    <button onClick={onClick}>
      {children}
    </button>
  );
}

呈现出来的效果如下:

这段代码有意思的地方就是,函数组件Button明明需要两个声明的参数,但是ToolBar组件嵌套时只传递了一个第一个参数onClick。而第二个函数children竟然默认是组件中的文本内容也许是我大惊小怪,但在其他的编程语言里面确实没见过,这么灵活的设计,不亲自实践或者有教程可以看到应该不容易理解和发现吧。而且这个参数名称只能是children,不能是其它的命名的,我试过时不好使的。

相关推荐
心连欣10 分钟前
解锁对象遍历:当字符串遇上for...in循环
前端·javascript
jstopo网站39 分钟前
水厂水泵工作流程图canvas动画
前端·javascript
张元清42 分钟前
5 分钟用 Vite SSR 搭建一个全栈 React 应用
前端·javascript·面试
布局呆星1 小时前
Vue3 | 组件化开发---组件插槽与通信
前端·javascript·vue.js
你的不安2 小时前
GEE中getInfo()
javascript·云计算·gee
大阳光男孩2 小时前
Uniapp+Vue3树形选择器
前端·javascript·uni-app
前端 贾公子2 小时前
uniapp中@input修改input内容不生效 | 过滤赋值无效 | 连续非法字符不更新的问题
开发语言·前端·javascript
533_2 小时前
[vxe-table] 表头:点击出现输入框
android·java·javascript
写不来代码的草莓熊2 小时前
el-date-picker ,自定义输入数字自动转换显示yyyy-mm-dd HH:mm:ss格式 【仅双日历 datetimerange专用】
开发语言·前端·javascript
Ava的硅谷新视界3 小时前
TypeScript 中用判别联合类型替代 instanceof 检查
前端·javascript·typescript