问题标签 [react-lifecycle]

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 投票
0 回答
27 浏览

javascript - 我可以在构造函数中调用 ajax/http 来填充一些类变量但不影响反应中的状态吗

在反应的一个类组件中,我在道具中得到一个端点。我需要获取该端点以获取将在该组件的链接中使用的确切端点。

我更喜欢将响应保存在不处于组件状态的类变量中。因为这些数据不会影响渲染和用户界面。

我希望尽快准备好第一个端点响应。根据反应在 ComponentDidMount 中调用 http 的最佳选项。

但是,如果我将在构造函数中以异步方式调用这个第一个端点,那么这个类组件将更早地准备好数据并且它不会阻止反应渲染。这是好事吗?会有副作用吗?

0 投票
2 回答
184 浏览

reactjs - 如何清除状态以使之前的状态不会在当前组件中呈现?

在我的食谱应用程序中,当用户点击特定食谱时,它会在组件recipeById中呈现点击食谱的所有详细信息。当我导航回登录页面并在我的 UI 中选择另一个食谱时;它先渲染了之前选择的recipe的数据,然后重新渲染了新选择的recipe的数据,应该怎么做才能防止呢???

recipeReducer.js

recipeActions.js

recipeById.js

0 投票
3 回答
2482 浏览

reactjs - 这个 componentWillMount 案例的替代方案?

我正在尝试重构一些旧代码。

componentWillMount已被弃用。

我如何将它在这里重构为其他东西?

0 投票
1 回答
298 浏览

reactjs - 子组件不使用 shouldComponentUpdate 重新渲染

我的子组件在其 prop 更改时更改其状态。我想重新渲染子组件 ImageSlide 以便在状态更改时调用不同的字符串。className 更改得很好,控制台很好地显示了更改后的值。但它不会重新渲染视图。

我尝试了 shouldComponentUpdate,但没有成功。如何重新渲染 ImageSlide?

}

0 投票
1 回答
37 浏览

reactjs - 当状态在不同的 reducer 中改变时重新渲染组件

Okies,所以,我正在开发一个简单的食谱集合应用程序,其中有 foodReducer.js 和 RecipeReducer.js。 在此处输入图像描述

在我的管理仪表板上,管理员用户可以创建、删除和编辑任何美食组,还可以为任何美食组创建、删除和编辑食谱。当用户点击任何菜系组时,它会使用菜系 ID 呈现菜谱面板中的所有菜谱。用户也可以通过在食谱或美食组上按“x”来删除。我需要解决的冲突是当一个配方被删除时,它也应该从用户界面中删除,而不需要刷新。我不知道如何实现。这是我的代码。

CuisineReducer.js

CuisineActions.js

recipeReducer.js

RecipeActions.js

管理员.js

这是我正在使用的调用的 json 数据:getCuisinesByCategory() GET 调用输出:

0 投票
0 回答
53 浏览

javascript - 即使 jss 实例更新,React-jss 也不会更新

所以,一个应用程序应该被渲染rtl或者ltr取决于它的状态。

我创建了一个沙箱来演示应该做什么: https ://codesandbox.io/s/rr8lyw3op4?fontsize=14

您可以看到选中状态属性启用或禁用RTL。但是,如果您更改它的值,JssProvider似乎并没有弄清楚,它会保持其配置与初始值的相同。

我确实认为这应该是可能的,但不知道怎么了!有任何想法吗?

0 投票
1 回答
587 浏览

react-native - 如何在本机模块回调中更改 react-router-native 位置

我正在构建一个 react-native 应用程序,该应用程序显示服务覆盖(如那些 facebook messenger 泡泡头),仅在 Android 中实现,并且在覆盖上单击它应该返回到特定屏幕中的应用程序。

我正在使用 react-router-native 并且我的路由结构如下:

应用程序.js

Main组件有这些:

主.js

我的 Native 模块的回调是这样调用的:

浮动视图.java

回调在组件中定义Search,它也执行原生模块:

搜索.js

问题是它this.props.history.push("/progress");在超时之外和内部都不起作用。在超时之外,该函数在之前被调用Main componentDidMountlocation.pathname没有更新。在其中调用该函数,但它不会导航到正确的屏幕。它总是落入/home.

我认为这是我的生命周期问题,因为未安装 Search 组件。我一直在想办法解决这个问题。我尝试使用该Redirect组件:

无论如何可以想办法解决这个问题吗?谢谢

0 投票
1 回答
796 浏览

javascript - 在 ComponentDidMount 中赋值而不是 React 中的构造函数

以下是我的代码(工作正常),我可以在其中根据文本框中提供的输入对列表进行排序。在constructor方法中,我这样声明我的状态 -

componentDidMount方法中,我datatableData.

我的问题是-这样做是否正确,因为我自己对此代码质量没有信心(将 tableData 初始化为[]然后 tableData: this.state.datacomponentDidMount方法中设置)。让我知道我是否可以改进这一点,如果我fetch从 API 中获取数据会发生什么变化,这是在应用程序中初始化和使用的最佳位置。

工作代码示例 - https://codesandbox.io/s/k9j86ylo4o

代码 -

0 投票
2 回答
81 浏览

reactjs - 如何在每次页面更新时获取元素的高度

我的页面上有一个内容区域,显示从 API 中提取的数据。我把它连接起来,所以一旦从 API 中提取数据,它就会保存到 Redux 存储并在页面上显示它。现在,我需要在顶部和底部按钮上添加一个滚动条,这样如果页面长度超过给定数量,比如 600 像素,它们就会出现。奇怪的是,在第一次加载页面时,API 查询没有启动,因此页面是空的,所以按钮不应该出现。

鉴于这一切,我没有办法,只能在 componentDidUpdate()

并将高度值保存到 Redux 存储,因此在代码中我可以像这样显示滚动条:

上面的 contentHeight 来自 redux 商店。

根据我的阅读,不建议在 React 更新生命周期内进行调度,特别是因为调度也会导致更新生命周期启动,它可能会导致无限循环。有什么办法可以让你们想到在页面上添加滚动到顶部或底部按钮?

有这个包允许滚动底部但不是顶部: https ://www.npmjs.com/package/react-scroll-to-bottom

0 投票
3 回答
3553 浏览

reactjs - 使用 React Hooks,为什么我的事件处理程序会以不正确的状态触发?

我正在尝试div使用反应钩子创建这个旋转示例的副本。https://codesandbox.io/s/XDjY28XoV

到目前为止,这是我的代码

目前 mouseMoveHandler 的调用状态为 ,isActive = false即使该状态实际上为真。如何让这个事件处理程序以正确的状态触发?

此外,控制台正在记录警告:

为什么我必须在 useEffect 依赖数组中包含组件方法?对于使用 React Hooks 的其他更简单的组件,我从来不需要这样做。

谢谢