简体   繁体   English

如何在反应原生功能组件中创建有价值的并且在更新时不会触发重新渲染?

[英]How can create the valuable in react native functional component and it doesn't trigger a re-render when update it?

in this case, it will trigger render again when I call updateNumber(), so how can create the valuable that it is for saving data only?在这种情况下,当我调用 updateNumber() 时它会再次触发渲染,那么如何创建仅用于保存数据的有价值的东西呢?

function test() {
   const [cartNum, setCartNum] = useState(0);

  function updateNumber() {
    setCartNum(number +1);
  }
  return (
    <View style={{ flex: 1 }}>
       <TouchableOpacity onPress={updateNumber}>
          <Text>
            {Math.random()}
          </Text>
      </TouchableOpacity>
    </View>
  );
}

Use the useRef hook使用useRef挂钩

Example below下面的例子

// Call on top of component 
const number = useRef(0);

const updateNumber = ()=>{
    number.current++;
}

There are 2 ways for it to update and not re render:有两种方法可以更新而不是重新渲染:

// by using normal variables
function test() {
   let number = 0;

  function updateNumber() {
    number++
  }
  return (
    <View style={{ flex: 1 }}>
       <TouchableOpacity onPress={updateNumber}>
          <Text>
            {Math.random()}
          </Text>
      </TouchableOpacity>
    </View>
  );
}

// or as carlos mentioned by using ref

function test() {
   const number = useRef(0);

  function updateNumber() {
   number.current++;
  }
  return (
    <View style={{ flex: 1 }}>
       <TouchableOpacity onPress={updateNumber}>
          <Text>
            {Math.random()}
          </Text>
      </TouchableOpacity>
    </View>
  );
}

Hope it helps.希望能帮助到你。 feel free for doubts随时怀疑

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 setState 不会重新渲染反应功能组件 - setState doesn't re-render react functional component 当 prop 更改时,React 功能组件不会重新渲染 - React functional component doesn't re-render when prop changes 为什么更改 state 时我的功能组件没有重新渲染? (反应) - Why my functional component doesn't re-render when change state? (react) 解决 promise 时如何重新渲染反应功能组件 - How to re-render react functional component when a promise is resolved 如何正确更新/重新渲染不是子级React Native的组件? - How to properly update/re-render a component that is not a child React Native? 状态更改时,React组件不会重新呈现 - React component doesn't re-render when state changes 无法在 React Native 项目(功能组件)中重新渲染视图 - Unable to re-render view in React Native project (functional component) React:如何有效地制作我的组件,以便在道具更改时整个组件不会重新渲染? - React: How can I efficiently make my component so the entire component doesn't re-render when a prop changes? 功能组件不会在道具更改时重新渲染 - functional component doesn't re-render on props change React.js-带有useState钩子的功能组件未按预期重新渲染 - React.js - Functional component with useState hook doesn't re-render as expected
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM