javascript - 在 React 中将组件定义为对象

标签 javascript reactjs

我正在学习教程 ( Serverless-Stack ),但我对以下代码片段有点困惑:

import React from "react";
import { Route } from "react-router-dom";

export default ({ component: C, props: cProps, ...rest }) =>
  <Route {...rest} render={props => <C {...props} {...cProps} />} />;

令人困惑的部分是 props 是如何定义的。我看到的大多数例子都是 props作为单个参数,例如 export default (props) => ... ,但是这被定义为一个对象。

我的理解是,在 JavaScript 中,常规对象是通过调用对象的键来使用的,如下所示:

let bar = 'baz';
let myObj = {foo: bar};
console.log(myObj['foo']);

我的问题是:教程中的代码片段如何通过值而不是键检索 Prop ?不应该是<component ...>而不是<C ...>

是否有一个用于定义此类 Prop 的技术名称,我可以搜索它以了解有关其工作原理的更多信息?

最佳答案

这不是值(value)观。解构对象时,您可以使用该语法重命名变量。

({ key0: renamedKey0 }) => ...

您可以在MDN web docs中阅读更多相关信息。在“分配新变量名称”部分中。

关于javascript - 在 React 中将组件定义为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50482700/

相关文章:

javascript - React redux - 更改单个状态项的属性

javascript - Select2 templateResult 数据没有可引用的元素

javascript - 如何显示更多帖子

javascript - onclick 不应触发表单数据提交

reactjs - 升级到webpack 4 UglifyJsPlugin报错

javascript - 为什么我的 angular.js 应用程序不能在 ie7 上运行?

javascript - 如何使用静态变量获取更新的 React Context?

javascript - 如果没有来自外部 API(通用 React + Redux 应用程序)的数据,如何重定向到 404?

reactjs - 如何在浏览器刷新后保持 React 组件状态

javascript - 组件重新渲染时,构造函数中创建的元素未更新