问题标签 [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.
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
项。
作为解决方案,是否有任何方法可以以通用方式消除此警告?否则,是否有一种方法可以摆脱仅SafeView
和Transitioner
组件(即 react-native-safe-area-view react-navigation react-navigation-stack 包)?
reactjs - 我无法停止使用 componentWIllReceiveProps / getDerivedStateFromProps
我是 React 的新手(实际上是编程世界),我只是发现我们根本不需要使用 componentWIllReceiveProps / getDerivedStateFromProps,但我有这个问题:
我有一个父组件 LoginForm,我在其中获取我的 API 并使用它的响应来重定向(如果成功),或者在登录失败时显示 Modal(LoginFailure 组件)。因此,我需要将我的父 LoginForm 传递给模态子 loginFailure 道具,该道具在 API 响应之后发生变化,当我的 LoginFailureComponent 已经呈现时,就好像它永远不知道父亲道具发生了变化。代码如下,抱歉太长了:
这是我的子组件,现在使用 willReceiveProps:
我阅读了所有关于我们应该如何替换这些的 React 文档,但我无法将它应用到我的案例中,如果你能指导我解决这个问题,我将非常感激!
感谢社区!
reactjs - 当我更新 Redux 时,React Native componentWillReceiveProps 没有正确调用
好的,这是我在ProductScreen中添加和删除购物车的按钮:
addToCart函数:
购物车减速器
The Cart动作
还有CartScreen 组件WillReceiveProps,我想在其中呈现购物车中的产品。redux 工作得很好,我已经正确存储了所有数据,但它们没有渲染!
当我按添加时它不起作用,但是当我按删除时它起作用!
一加一删:
再按一次删除后:
这很奇怪,因为在第二次按下删除购物车道具时是相同的......但是当我添加并且道具更改时没有显示任何内容。
谢谢 !
javascript - React 道具值未定义
这是我的父代码:
这基本上是我的子组件:
但是当我在组件中的某处控制台日志标签时Child
,它是未定义的。也许它是未定义的,因为子组件在父组件调用方法之前被渲染getTags
?或者这段代码还有其他问题吗?以及如何避免子组件中未定义标签的问题?
干杯
react-native - React Native 生日选择器 - componentWillREceiveProps
我需要为一个反应天真的应用程序构建一个生日选择器。我发现了以下https://github.com/ericmorgan1/react-native-birthday-picker但它有已弃用的方法 componentWillREceiveProps
我还没有那么有经验,所以我不知道如何将其更改为新方法以使其发挥作用。任何人都可以帮忙吗?
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 而不会得到双重结果?
reactjs - 更新道具不会调用 componentWillReceiveProps 方法
在 UI 中,我有两个按钮,addRow 和 removeRow。AddRow 添加一个带有下拉列表的新行,removeRow 将其删除。出于某种原因,单击删除行不会从 UI 中删除该行。父类是一个功能组件:
LimitRequestInputList 组件是一个类组件,它具有 addRow 和 removeRow 按钮:
据我所知,只要道具发生变化,就会调用 componentWillReceiveProps 方法。在我的代码中没有发生。问题是因为父组件是功能组件而子组件是类组件。我想应该不是个案。因此,单击删除按钮不会从 UI 中删除该行。没有调用 componentWillReceiveProps 可能是什么原因?我确保每次单击按钮时道具值都不同。
reactjs - 抽屉导航器 React Native 中的条件渲染
我正在使用 Redux 在 React Native 中编写小应用程序。当用户注册时,我想向他显示“设置屏幕”,他可以在其中设置他的银行帐户。此外,当他登录或注册时,我正在 Redux 的后端检查他的银行帐户,然后将它们发送到我想要检索此数据的组件中。一切正常,但数据会在一段时间后出现(我认为这是整个问题)。然后根据这些数据,我想更改 DrawerNavigator 的 initialRouteName。如果它是空字符串或未定义返回设置屏幕,否则返回 HomeDrawerScreen。但它总是返回我设置屏幕。这是我的代码:
javascript - 如何在 React 中使用 getDerivedStateFromProps 而不是 componentWillReceiveProps
我喜欢更新我的代码以使用 getDerivedStateFromProps 而不是 componentWillReceiveProps,因为我收到了已弃用的错误。该组件正在接收一个日期属性,并且每次更改日期时都需要使用新日期运行 getList。为此,我使用下面的代码
我尝试了以下但它不起作用