- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图将问题归结为一个尽可能简单的例子:
我们有一个子组件列表,每个子组件都称为 NumChoice
,每个代表一个数字。 NumChoice
包裹在 React.memo
.在父组件中,我们有一个 bool 数组,choices
,每个对应一个子组件 NumChoice
.首先,choices
的所有元素是 false
.为了渲染子组件,我们遍历 choices
,并为每个选择生成对应的子组件 NumChoice
.我们定义了一个函数 chooseDivisibles
在父组件中,使用 useCallback
从每个子组件调用 NumChoice
. chooseDivisibles
取 NumChoice
的索引谁调用它并更改了choices
的相应元素至 true
.每个NumChoice
如果其在 choices
中的对应元素具有“红色”背景色是 true
,否则,其背景颜色为“白色”。
完整代码可在以下位置获得:
https://codesandbox.io/s/react-rerender-l4e3c?fontsize=14&hidenavigation=1&theme=dark
包装NumChoice
在 React.memo
和 chooseDivisibles
在 useCallback
,我们预计只会重新渲染 NumChoice
choices
对应元素的组件更改但 React 重新渲染它们。 chooseDivisibles
包裹在 useCallback
, 除了 setChoices
没有列出任何依赖项.另外,NumChoice
包裹在 React.memo
并且它应该只在指定的 Prop 改变时重新渲染,但它们不会改变,并且改变 choices
不应该对重新渲染产生任何影响 NumChoice
.如果我们排除检查 chooseDivisibles
的相等性在上一个和下一个 Prop 中,它按预期工作,但我认为上一个和下一个的比较 chooseDivisibles
不应该影响重新渲染 NumChoice
因为它被包裹在 useCallback
并且不依赖于 choices
.我们如何防止重新渲染 NumChoice
组件的props
是不是变了?
最佳答案
啊,我在 NumChoice.js
中看到了我们也在断言 prevProps.chooseDivisibles === nextProps.chooseDivisibles
,始终是 false
, 自 chooseDivisibles={event => chooseDivisibles(idx)}
每次生成一个新函数
如果删除 prevProps.chooseDivisibles === nextProps.chooseDivisibles
,它只会重新渲染受影响的!
关于reactjs - react : How to prevent re-rendering child components in `map` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60528958/
我需要在每个渲染帧完成后拍摄屏幕截图,但我发现某些屏幕截图是重复的,所以我想知道是否可以在渲染完成之前保存屏幕截图。因此... renderer.render() 会阻塞直到完成渲染吗? 如果没有,有
web.py 骨架代码中的“render._keywords['globals']['render'] = render”是什么意思? http://webpy.org/skeleton/0.3 最佳
所以在我的 Nuxt universal-mode 应用程序中,我有时会出现错误: vue.runtime.esm.js:620 [Vue warn]: The client-side rendere
我想创建一个 portal-like effect使用 Bevy . Unity 似乎有一个 render texture实现这一目标。 有没有办法在 Bevy 中做同样的事情?如果没有, futur
我有一个看起来像这样的组件(非常简化的版本): const component = (props: PropTypes) => { const [allResultsVisible, setA
编辑:我调整了代码,但问题仍然存在。见下文 我有这个 p:selectOneRadio : 而这个 p:radioButton : 和 AData包含其
为了渲染部分我可以使用 render 'partial_name' 或 render partial: 'partial_name' 我开始知道 render 是 render partial 的简写
我注意到文章中的一些地方使用了 React.render() 和一些地方 ReactDOM.render()。这两者有什么具体区别吗? 最佳答案 这是 0.14 中引入的最新更改。他们将 React
我的代码是这样的: function render() { renderer.render( scene, camera ); renderer.clear(); } 我想知道为什么它
我目前正在实现 useSWR 以便从我的 express 和 mongo-db 后端获取数据。我能够从数据库中成功获取数据没问题。以下是我用来实现此目的的代码: ```//SWR method for
我只有在按照 React native - "this.setState is not a function" trying to animate background color? 的建议合并了 u
所以我有一个大的纹理,被分成 64x64 block 。 我使用将其加载到 LibGDX texture = new Texture("texturemap.png"); regions = Text
我对放置 @Scripts.Render 和 @Styles.Render 的位置感到很困惑。理想情况下,我会将它们全部放在 head 部分中,但出乎意料的是,例如 @Scripts.Render("
我正在尝试使用 jamon 来收集使用 Tapestry 的网站的统计信息(呈现网页的时间)。 我怎样才能拥有 服务器收到请求时执行的方法,即渲染开始时? 响应全部发送完毕,即渲染结束时执行的方法 ?
在我的 React 应用程序中,我想要渲染一个 prop 值,但直到渲染完成后更新 props 后它才存在。 this.props.users 是一个对象,因此我使用 Object.keys() 转换
我正在使用 React 的钩子(Hook),我希望有一个从数据库中检索到的值作为初始值。但是,我收到以下错误: Invariant Violation: Invariant Violation: Re
我正在尝试按照以下代码将多个场景包含到单个 webgl 渲染器中: renderer.render(scene1, camera); renderer.render(scene2, camera);
我在我的 xhtml 页面中使用此代码,当我运行应用程序时,元描述仍在呈现。我想根据某些条件使用元描述标签。主布局: ..........
我正在使用react-native-render-html来渲染html。renderers方法允许我提供自定义函数来呈现特定标签。不过,我想使用源代码中的原始内部 HTML 将子组件替换为我的自定义
我有一个网格,可以渲染可变高度的卡片。 为了获取卡片的高度,我将卡片渲染在 ReactHeight 中。 ( https://github.com/nkbt/react-height ),这让我可以在
我是一名优秀的程序员,十分优秀!