在ReactJS中的函数组件内声明变量
我有一个变量“myVar”(不是状态) 解决方案2:声明组件道具(但不公开)在ReactJS中的函数组件内声明变量,reactjs,react-functional-component,Reactjs,React Functional Component,我有一个变量“myVar”(不是状态) 解决方案2:声明组件道具(但不公开) 什么是常规解决方案?使用挂钩。在重新渲染期间,引用存储的值不会重新初始化。更改引用存储的值不会触发重新渲染,因为这不是状态更改。使用挂钩。在重新渲染期间,引用存储的值不会重新初始化。更改引用存储的值不会触发重新渲染,因为这不是状态更改。好的,在类组件中,这可以通过组件安装和组件更新逻辑解决。通过使用useRef和useffect钩子,可以对功能组件执行相同的行为: const myComponent = () =>
什么是常规解决方案?使用挂钩。在重新渲染期间,引用存储的值不会重新初始化。更改引用存储的值不会触发重新渲染,因为这不是状态更改。使用挂钩。在重新渲染期间,引用存储的值不会重新初始化。更改引用存储的值不会触发重新渲染,因为这不是状态更改。好的,在类组件中,这可以通过组件安装和组件更新逻辑解决。通过使用useRef和useffect钩子,可以对功能组件执行相同的行为:
const myComponent = () => {
const mounted = useRef();
useEffect(() => {
if (!mounted.current) {
// do componentDidMount logic
mounted.current = true;
const myVar = false
} else {
// do componentDidUpdate logic
}
});
}
好的,在类组件中,这可以通过componentDidMount和componentdiddupdate逻辑来解决。通过使用useRef和useffect钩子,可以对功能组件执行相同的行为:
const myComponent = () => {
const mounted = useRef();
useEffect(() => {
if (!mounted.current) {
// do componentDidMount logic
mounted.current = true;
const myVar = false
} else {
// do componentDidUpdate logic
}
});
}
在您的情况下,
ref
非常有效。您可以使用useRef
。在您的案例中阅读更多内容ref
非常有效。您可以使用useRef
。多读点书给你听。是的,目标是不触发“无用”的重新渲染。我将使用useRef,但我发现调用“.current”并不方便,我的问题是doc:Tank you。是的,目标是不触发“无用”的重新渲染。我将使用useRef,但我发现调用“.current”并不方便。我的问题在文档中:
const myComponent = ({myVar = true}) => {
....
}
const myComponent = () => {
const mounted = useRef();
useEffect(() => {
if (!mounted.current) {
// do componentDidMount logic
mounted.current = true;
const myVar = false
} else {
// do componentDidUpdate logic
}
});
}