我有一个带有道具的功能组件:
imports: []
使用不同的props值多次渲染该组件。我需要获取不等于当前值的最接近的先前prop值。例如:
有一个类似的“ usePrevious”钩子:
function MyComponent({propA, propB, propC}) {
...
}
但是即使没有更改,它也会返回任何先前的值。看起来我应该修改此钩子,但我不知道如何
代码示例:https://codesandbox.io/s/cranky-snow-mkile?file=/src/index.js(props值记录在控制台中)
答案 0 :(得分:1)
尝试一下:
const usePrevious = newValue => {
const refPrev = useRef()
const refCurr = useRef()
if (newValue !== refCurr.current) {
refPrev.current = refCurr.current;
refCurr.current = newValue;
}
return refPrev.current;
}