问题标签 [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.
javascript - 我可以在构造函数中调用 ajax/http 来填充一些类变量但不影响反应中的状态吗
在反应的一个类组件中,我在道具中得到一个端点。我需要获取该端点以获取将在该组件的链接中使用的确切端点。
我更喜欢将响应保存在不处于组件状态的类变量中。因为这些数据不会影响渲染和用户界面。
我希望尽快准备好第一个端点响应。根据反应在 ComponentDidMount 中调用 http 的最佳选项。
但是,如果我将在构造函数中以异步方式调用这个第一个端点,那么这个类组件将更早地准备好数据并且它不会阻止反应渲染。这是好事吗?会有副作用吗?
reactjs - 如何清除状态以使之前的状态不会在当前组件中呈现?
在我的食谱应用程序中,当用户点击特定食谱时,它会在组件recipeById中呈现点击食谱的所有详细信息。当我导航回登录页面并在我的 UI 中选择另一个食谱时;它先渲染了之前选择的recipe的数据,然后重新渲染了新选择的recipe的数据,应该怎么做才能防止呢???
recipeReducer.js
recipeActions.js
recipeById.js
reactjs - 这个 componentWillMount 案例的替代方案?
我正在尝试重构一些旧代码。
componentWillMount
已被弃用。
我如何将它在这里重构为其他东西?
reactjs - 子组件不使用 shouldComponentUpdate 重新渲染
我的子组件在其 prop 更改时更改其状态。我想重新渲染子组件 ImageSlide 以便在状态更改时调用不同的字符串。className 更改得很好,控制台很好地显示了更改后的值。但它不会重新渲染视图。
我尝试了 shouldComponentUpdate,但没有成功。如何重新渲染 ImageSlide?
}
reactjs - 当状态在不同的 reducer 中改变时重新渲染组件
Okies,所以,我正在开发一个简单的食谱集合应用程序,其中有 foodReducer.js 和 RecipeReducer.js。
在我的管理仪表板上,管理员用户可以创建、删除和编辑任何美食组,还可以为任何美食组创建、删除和编辑食谱。当用户点击任何菜系组时,它会使用菜系 ID 呈现菜谱面板中的所有菜谱。用户也可以通过在食谱或美食组上按“x”来删除。我需要解决的冲突是当一个配方被删除时,它也应该从用户界面中删除,而不需要刷新。我不知道如何实现。这是我的代码。
CuisineReducer.js
CuisineActions.js
recipeReducer.js
RecipeActions.js
管理员.js
这是我正在使用的调用的 json 数据:getCuisinesByCategory() GET 调用输出:
javascript - 即使 jss 实例更新,React-jss 也不会更新
所以,一个应用程序应该被渲染rtl
或者ltr
取决于它的状态。
我创建了一个沙箱来演示应该做什么: https ://codesandbox.io/s/rr8lyw3op4?fontsize=14
您可以看到选中状态属性启用或禁用RTL
。但是,如果您更改它的值,JssProvider
似乎并没有弄清楚,它会保持其配置与初始值的相同。
我确实认为这应该是可能的,但不知道怎么了!有任何想法吗?
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
componentDidMount
但location.pathname
没有更新。在其中调用该函数,但它不会导航到正确的屏幕。它总是落入/home
.
我认为这是我的生命周期问题,因为未安装 Search 组件。我一直在想办法解决这个问题。我尝试使用该Redirect
组件:
无论如何可以想办法解决这个问题吗?谢谢
javascript - 在 ComponentDidMount 中赋值而不是 React 中的构造函数
以下是我的代码(工作正常),我可以在其中根据文本框中提供的输入对列表进行排序。在constructor
方法中,我这样声明我的状态 -
在componentDidMount
方法中,我data
在tableData
.
我的问题是-这样做是否正确,因为我自己对此代码质量没有信心(将 tableData 初始化为[]
然后 tableData: this.state.data
在componentDidMount
方法中设置)。让我知道我是否可以改进这一点,如果我fetch
从 API 中获取数据会发生什么变化,这是在应用程序中初始化和使用的最佳位置。
工作代码示例 - https://codesandbox.io/s/k9j86ylo4o
代码 -
reactjs - 如何在每次页面更新时获取元素的高度
我的页面上有一个内容区域,显示从 API 中提取的数据。我把它连接起来,所以一旦从 API 中提取数据,它就会保存到 Redux 存储并在页面上显示它。现在,我需要在顶部和底部按钮上添加一个滚动条,这样如果页面长度超过给定数量,比如 600 像素,它们就会出现。奇怪的是,在第一次加载页面时,API 查询没有启动,因此页面是空的,所以按钮不应该出现。
鉴于这一切,我没有办法,只能在 componentDidUpdate()
并将高度值保存到 Redux 存储,因此在代码中我可以像这样显示滚动条:
上面的 contentHeight 来自 redux 商店。
根据我的阅读,不建议在 React 更新生命周期内进行调度,特别是因为调度也会导致更新生命周期启动,它可能会导致无限循环。有什么办法可以让你们想到在页面上添加滚动到顶部或底部按钮?
有这个包允许滚动底部但不是顶部: https ://www.npmjs.com/package/react-scroll-to-bottom
reactjs - 使用 React Hooks,为什么我的事件处理程序会以不正确的状态触发?
我正在尝试div
使用反应钩子创建这个旋转示例的副本。https://codesandbox.io/s/XDjY28XoV
到目前为止,这是我的代码
目前 mouseMoveHandler 的调用状态为 ,isActive = false
即使该状态实际上为真。如何让这个事件处理程序以正确的状态触发?
此外,控制台正在记录警告:
为什么我必须在 useEffect 依赖数组中包含组件方法?对于使用 React Hooks 的其他更简单的组件,我从来不需要这样做。
谢谢