我正在学习React.js。我熟悉下面的代码
class Login extends Component {
state = { email: '',};
render = () => {
return (//some JSX code);
}
}
但我得到了以下代码作为问题的解决方案。
const PrivateRoute = ({ component: Component, ...rest }) => (
<Route
{...rest}
render={props =>
(Auth.isAuthenticated() ? ( <Component {...props} />) : (<Redirect to={{ pathname: '/',}}/>))
}
/>
);
我不能理解上面的代码。谁能帮我理解一下?
这里的{... rest}
是什么?
我知道播音员。为什么我在这里传递它({component:component,…rest})
和这里
为什么
呈现()
看起来像这个呈现={props=
谢谢大家。
要回答第一个问题,请使用对象扩展运算符,引用MDN:
扩展语法允许在预期零个或多个参数(用于函数调用)或元素(用于数组文字)的位置展开iterable,例如数组表达式或字符串,或者在预期零个或多个键值对(用于对象文字)的位置展开object表达式。
在您的例子中,它所做的是将所有的props(除了组件)作为props传递给组件。
关于第二个问题-这基本上是渲染道具模式。请参阅文档进行解释,因为它很长。但是基本上,Route
组件将函数作为其render
prop,该函数的职责是基于传递给它的props
呈现一些内容。
{…rest}是对象ref的分解结构:https://developer.mozilla.org/it/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment 在react中,您可以将组件编写为组件类(托管组件)的扩展或PureComponent或Functional组件(非托管组件)的扩展。您需要的是一个功能组件。分解是ES6的一项功能,而组件是react的功能,您可以在react官方文档中找到所有信息和模式。
我遇到了一些javascript。我不理解代码执行的流程。 我认为输出是'ap'然后'ap'。但我得到了'ple'和'ap'。这是怎么发生的?
本部分试图从专题和业务流程的角度来剖析 Neutron 代码,以便理解如此设计的内涵。
本文向大家介绍使用ES6语法重构React代码详解,包括了使用ES6语法重构React代码详解的使用技巧和注意事项,需要的朋友参考一下 使用ES6语法重构React组件 在Airbnb React/JSX Style Guide中,推荐使用ES6语法来编写react组件。下面总结一下使用ES6 class语法创建组件和以前使用React.createClass方法来创建组件的不同。 创建组件 ES
我有下面的一段代码,它正在打印:一些(600)作为输出。 不知道加法是如何在“for”循环中发生的。 在下面,它混淆了“for”循环的代码块内发生的事情以及变量“y”的计算方式。有人能帮忙吗?
2.1 理解代码窗口 您可以通过代码窗口查看当前被调试程序的源代码。CGDB只能同时显示一个源文件。当用户调试程序的时候,通过 next 和 step 命令,CGDB将会更新源代码以及行号,以此提醒您调试进行到了何处。 CGDB有几个新特性能让调试比使用旧的GDB更方便。其中,当您在调试C,C++或ADA程序的时候,源代码是高亮的。这个特性可以让您更加快速的找到源文件中的特定代码。如果您需要让CG