问题标签 [componentwillreceiveprops]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
300 浏览

react-native - Expo SDK 36,“componentWillReceiveProps 已重命名,不推荐使用”错误的通用解决方案

当我运行expo start我收到的警告是:

我知道这是一个警告,在生产模式下看不到,但为了不错过其他可能的警告,我想摆脱它。

我没有使用componentWillReceiveProps,但依赖expo项正在使用。

  • 建议npx react-codemod rename-unsafe-lifecycles只检查我编写的代码,而不是来自node_modules.
  • 并且该建议Please update the following components: SafeView, Transitioner不适用,因为它们不是来自我包含的组件,而是来自expo主要组件本身的组件及其依赖react-native项。

作为解决方案,是否有任何方法可以以通用方式消除此警告?否则,是否有一种方法可以摆脱仅SafeViewTransitioner组件(即 react-native-safe-area-view react-navigation react-navigation-stack 包)?

0 投票
2 回答
56 浏览

reactjs - 我无法停止使用 componentWIllReceiveProps / getDerivedStateFromProps

我是 React 的新手(实际上是编程世界),我只是发现我们根本不需要使用 componentWIllReceiveProps / getDerivedStateFromProps,但我有这个问题:

我有一个父组件 LoginForm,我在其中获取我的 API 并使用它的响应来重定向(如果成功),或者在登录失败时显示 Modal(LoginFailure 组件)。因此,我需要将我的父 LoginForm 传递给模态子 loginFailure 道具,该道具在 API 响应之后发生变化,当我的 LoginFailureComponent 已经呈现时,就好像它永远不知道父亲道具发生了变化。代码如下,抱歉太长了:

这是我的子组件,现在使用 willReceiveProps:

我阅读了所有关于我们应该如何替换这些的 React 文档,但我无法将它应用到我的案例中,如果你能指导我解决这个问题,我将非常感激!

感谢社区!

0 投票
1 回答
33 浏览

reactjs - 当我更新 Redux 时,React Native componentWillReceiveProps 没有正确调用

好的,这是我在ProductScreen中添加删除购物车的按钮:

addToCart函数:

购物车减速器

The Cart动作

还有CartScreen 组件WillReceiveProps,我想在其中呈现购物车中的产品。redux 工作得很好,我已经正确存储了所有数据,但它们没有渲染!

当我按添加时它不起作用,但是当我按删除时它起作用!

一加一删:

再按一次删除后:

这很奇怪,因为在第二次按下删除购物车道具时是相同的......但是当我添加并且道具更改时没有显示任何内容。

谢谢 !

0 投票
2 回答
1046 浏览

javascript - React 道具值未定义

这是我的父代码:

这基本上是我的子组件:

但是当我在组件中的某处控制台日志标签时Child,它是未定义的。也许它是未定义的,因为子组件在父组件调用方法之前被渲染getTags?或者这段代码还有其他问题吗?以及如何避免子组件中未定义标签的问题?

干杯

0 投票
0 回答
543 浏览

react-native - React Native 生日选择器 - componentWillREceiveProps

我需要为一个反应天真的应用程序构建一个生日选择器。我发现了以下https://github.com/ericmorgan1/react-native-birthday-picker但它有已弃用的方法 componentWillREceiveProps

我还没有那么有经验,所以我不知道如何将其更改为新方法以使其发挥作用。任何人都可以帮忙吗?

0 投票
1 回答
369 浏览

javascript - React 组件生命周期 componentWillReceiveProps 弃用导致 Redux 出现问题

我有 2 个组件,一个用于将新帖子添加到帖子数组中,另一个组件映射到该帖子数组并在页面上列出它们。

我想用 将新帖子添加到数组的顶部unshift(),但自从componentWillReceiveProps被弃用以来,我一直在努力寻找新getDerivedStateFromProps方法的解决方案。


这是 Postform.js:

这是 Posts.js:


问题是getDerivedStateFromProps被调用了两次(初始安装和每次渲染),

不像componentWillReceiveProps只调用一次。

这会导致 newPost 被两次添加到数组中,因此它也在页面上显示 double。


我在这里使用 Redux,所以状态应该在 store 中(大部分是),但是我已经为Posts.js组件添加了一个 state,因为getDerivedStateFromProps否则它将不起作用(据我尝试)。


简而言之:如何将 newPost 添加到getDerivedStateFromProps(或其他生命周期方法)内的 props-array 而不会得到双重结果?

0 投票
1 回答
27 浏览

reactjs - 更新道具不会调用 componentWillReceiveProps 方法

在 UI 中,我有两个按钮,addRow 和 removeRow。AddRow 添加一个带有下拉列表的新行,removeRow 将其删除。出于某种原因,单击删除行不会从 UI 中删除该行。父类是一个功能组件:

LimitRequestInputList 组件是一个类组件,它具有 addRow 和 removeRow 按钮:

据我所知,只要道具发生变化,就会调用 componentWillReceiveProps 方法。在我的代码中没有发生。问题是因为父组件是功能组件而子组件是类组件。我想应该不是个案。因此,单击删除按钮不会从 UI 中删除该行。没有调用 componentWillReceiveProps 可能是什么原因?我确保每次单击按钮时道具值都不同。

0 投票
1 回答
422 浏览

reactjs - 抽屉导航器 React Native 中的条件渲染

我正在使用 Redux 在 React Native 中编写小应用程序。当用户注册时,我想向他显示“设置屏幕”,他可以在其中设置他的银行帐户。此外,当他登录或注册时,我正在 Redux 的后端检查他的银行帐户,然后将它们发送到我想要检索此数据的组件中。一切正常,但数据会在一段时间后出现(我认为这是整个问题)。然后根据这些数据,我想更改 DrawerNavigator 的 initialRouteName。如果它是空字符串或未定义返回设置屏幕,否则返回 HomeDrawerScreen。但它总是返回我设置屏幕。这是我的代码:

0 投票
1 回答
15 浏览

javascript - 如何在 React 中使用 getDerivedStateFromProps 而不是 componentWillReceiveProps

我喜欢更新我的代码以使用 getDerivedStateFromProps 而不是 componentWillReceiveProps,因为我收到了已弃用的错误。该组件正在接收一个日期属性,并且每次更改日期时都需要使用新日期运行 getList。为此,我使用下面的代码

我尝试了以下但它不起作用