当前位置: 首页 > 知识库问答 >
问题:

React:我可以通过道具传递组件默认状态值吗?

郎永福
2023-03-14

对于Eample:

<Counter start="10">

... 

export default class Counter extends React.Component {

    constructor(props) {

        super();

        this.state = {
            start: props.start
        };
    }
}

我在谷歌上搜索了这个问题,我发现我找到的答案已经过时了

关于StackOVerflow的几个问题

  • reactJS:为什么将组件初始状态传递为prop是反模式?
  • reactJS:如何在呈现组件时传递初始状态?

但是我在React博客中发现了这个帖子:React v0.13.0 Beta 1

在这篇文章中,author做了我想做的事情,据我所知,getDefaultProps现在是不推荐的。

所以问题是:通过道具传递状态仍然是反模式吗?

共有1个答案

景成和
2023-03-14

因为你给人的印象是改变道具值会改变组件的行为,而这是不会发生的。当我更改开始参数时,组件的行为将完全相同。

印象很酷,但需求是真实的。当我需要这种类型的行为时,我只需相应地将我的prop命名为initialfoodefaultbar

 类似资料:
  • 问题内容: 我只是在 文档中读到以下错误,它将影响渲染时间。如果是这种情况,我该如何重构代码并使用所需的道具来创建动态样式? 先感谢您。 标签组件 问题答案: 我相信文档在说的是您应该避免在渲染组件中包含样式: 做这个 代替这个 因为发生的是组件的Props更改,所以组件将重新渲染并且样式将重新生成。因此,有必要将其分开。 因此,如果您进一步阅读 基于道具 的 适应 部分,他们将对此进行解释: 之

  • 我试图在我的应用程序中分解组件,但在理解如何将状态和道具从父组件传递给子组件时遇到了一些问题。对于上下文,“我的子组件”是一个表,它在行中呈现较小的组件。 现在我有一个名为BookComponents的常量,它需要一本书并写入状态。我被卡住的地方是传递状态和道具到我的书桌组件,这样我就可以在书桌上呈现书籍,而不是在主页上。 主页: 书桌代码:

  • 问题内容: 如何在不暴露URL的情况下将prop与组件一起传递? 这样吗?我正在使用。 问题答案: 您可以这样传递数据: 这是您可以访问的方式: 该API文档解释了如何通过状态和其他变量重定向/历史道具。 来源:https : //github.com/ReactTraining/react-router/blob/master/packages/react- router/docs/api/Re

  • 我是反应的新手,尝试将一个值从父组件传递给子组件到props并将值存储在状态中。但它甚至不调用console.log语句 这是我的函数通过单击按钮来更改字符串 在父组件中,在渲染中我有这个: 子组件 从“React”导入React;将*作为样式从“”导入/编辑单元css’; 我的目标是,根据通过单击按钮更改的状态,显示div或不显示div。

  • 我无法使用反应路由器通过道具。我到现在为止的代码: 错误截图 我正试图访问控制台中的id,就这么简单。 错误仅在我尝试传递道具时显示 源链接:https://reacttraining.com/react-router/web/api/Route/route-props

  • 所以我想通过firebase函数设置访问,然后把这个访问道具作为道具传递给tabs组件,但是tabs组件的初始状态为null,firebase auth funtion在此之后就解决了。