我需要在React(Native)中有条件地添加一个函数。

该代码可以工作,但是大概在平台为Web时不必要地调用onScroll事件,我认为这对于性能而言不是理想的选择吗?

  <ScrollView
    onScroll={() => {
      if(Platform.OS === 'web') {
        return;
      }
      container.current?.onScroll();
    }}
  >


有条件设置onScroll道具的方法吗?

最佳答案

您可以,但是就性能而言,这可能比付出的努力更多。调用不执行任何操作的函数的成本很少。

您可以将props构造为JSX之外的对象,并使用spread运算符将其传递,如下所示:

const scrollViewProps = {}

if (Platform.OS !== "web") {
  scrollViewProps.onScroll = () => {
    container.current?.onScroll()
  }
}

<ScrollView {...scrollViewProps} />

关于reactjs - 有条件地在React中添加功能作为prop?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61588829/

10-09 12:32