我不明白为什么我们要用{…道具}
例如在我的代码中(当我学习路由器时)我做了这样的事情
import React from 'react';
import { BrowserRouter, Route, Switch } from 'react-router-dom'
import Home from './home.js';
const route = () => {
return(
<BrowserRouter>
<Switch>
<Route path ="/" render ={(props) => <Home {...props}/>} />
</Switch>
</BrowserRouter>
)
}
export default route;
这里,这个传递函数/可能称之为给他道具
从React导入;
const home = (props) => {
console.log(props)
return (
<div> home </div>
);
}
export default home;
这将记录类似这样的内容
{match: {…}, location: {…}, history: {…}, staticContext: undefined}
但是如果我把{…道具}从家里移除,它就不会记录这个
{match: {…}, location: {…}, history: {…}, staticContext: undefined}
任何人都可以分步/或详细地解释发生了什么,我们为什么需要它?
这基本上是工作中的扩展语法。它允许在需要参数或参数的地方展开iterable。
例如,你有一个判决,
params = { a: 1, b: 2, c: 3}
您需要a、b和c作为组件模块的支柱。
通过他们的一个方法是这样的,
<Module a=params['a'] b=params['b'] c=params['c'] />
但是利用ES6的扩展语法,它只是,
<Module {...params} /}
更容易对吧?道具只是鸡巴。您的代码暗示您希望Home组件继承您在上面登录的其父组件路由的所有道具。你可以手动添加所有想要的道具,但是谁有时间呢?
在这里阅读有关扩展语法的更多信息。
给的
渲染
道具的函数被调用,路由道具列在留档中。通过在您的Home
组件上传播它们,您只是传递这些道具,以便它们也可以在您的Home
组件道具中使用。
如果您只将路径道具传递给“代码> >代码>路由> <代码>的函数<代码>渲染>代码>,请考虑使用<代码>组件< /代码>支持:
<Route path="/" component={Home} />
我在找到一种将道具传递给组件子组件的方法时遇到了一点麻烦。我想做的是有一个组件(ParentComponent)它有一个函数(toggleSuccess())来改变它自己的状态(例如一个名为成功的布尔值),并将该函数作为onClick道具传递给它的所有子函数。理想情况下,我可以将各种组件放入ParentComponent,它们都可以通过onClick道具访问toggleSuccess()。有没有一
悬而未决...
我在克服react路由器的问题时遇到困难。该场景是,我需要从状态父组件和路由向子路由传递一组道具 我想做的是传递its,传递its。然而,我能找到的唯一方法是通过这两个和,这意味着每个子路径都会获得每个子道具,无论其是否相关。目前这不是一个阻塞问题,但我可以看到,有一段时间我会使用同一组件的两个,这意味着propA上的键将被propB上的键覆盖。 这实际上是我所期望的方式。当我链接到我得到组件渲染
在本页React Native State on React Native docs中,我们有以下语句: 道具由父级设置,并且在组件的整个生存期内都是固定的。 但是,在本页React文档上的React State and Lifecycle中,我们有以下声明: 因为this.props和this.state可能是异步更新的,所以不应该依赖它们的值来计算下一个状态。 我的误解在哪里?对我来说,当组件
我对在反应中传递道具有问题。这是我的文件夹结构: src > Button.js 容器 PageContainer.js 页 Page.js 我正在使用Bootstrap 4在Button.js中创建一个按钮: “类”按钮中没有其他内容。现在我在类PageContainer中添加了一个按钮: 如你所见,我给按钮传递了一个标题:后退和下一步。那工作正常。我现在可以添加一个网址,它会工作正常,但这不是
有什么办法可以做到这一点吗? 需要能够更改组件调用的组件