[英]How can create the valuable in react native functional component and it doesn't trigger a re-render when update it?
在这种情况下,当我调用 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>
);
}
使用useRef
挂钩
下面的例子
// Call on top of component
const number = useRef(0);
const updateNumber = ()=>{
number.current++;
}
有两种方法可以更新而不是重新渲染:
// 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>
);
}
希望能帮助到你。 随时怀疑
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.