是否可以在不重新渲染的情况下更改组件的 prop 。在react native中,我需要更改scrollview的scrollEnabled属性,而不需要重新渲染整个UI。这是否可能通过真正深入组件API或其他东西,并在没有整个重新渲染的情况下更改该 prop ?编辑:我不需要像usememomo或useRef这样的东西。它实际上是关于改变ScrollView的 prop ,而不重新呈现除了该组件之外的任何东西。这可能吗?
scrollEnabled
ScrollView
nqwrtyyt1#
如果不重新渲染组件,则无法获取state或prop的新值。
但是你可以阻止重新渲染那些不需要这些 prop 的组件。可以使用React.memo。如果组件的属性没有改变,它会阻止组件的呈现。处理对象、数组、函数时要小心。。因为它们在每次渲染时都会获得新的引用。
React.memo
zqdjd7g92#
你应该检查useRefuseRef是一个React Hook,它允许你引用渲染不需要的值。https://react.dev/reference/react/useRef
useRef
8mmmxcuj3#
您可以将React.memo与自定义比较函数一起使用。https://react.dev/reference/react/memo
3条答案
按热度按时间nqwrtyyt1#
如果不重新渲染组件,则无法获取state或prop的新值。
但是你可以阻止重新渲染那些不需要这些 prop 的组件。
可以使用
React.memo
。如果组件的属性没有改变,它会阻止组件的呈现。处理对象、数组、函数时要小心。。因为它们在每次渲染时都会获得新的引用。zqdjd7g92#
你应该检查
useRef
useRef是一个React Hook,它允许你引用渲染不需要的值。
https://react.dev/reference/react/useRef
8mmmxcuj3#
您可以将
React.memo
与自定义比较函数一起使用。https://react.dev/reference/react/memo