gpt4 book ai didi

javascript - 函数内的变量集未在其他函数中定义

转载 作者:行者123 更新时间:2023-11-30 19:14:08 24 4
gpt4 key购买 nike

我正在使用 react.js,并且我有以下代码。


function App() {
let Submitable;
const [values, setValues] = useState([])

//...



onTicket.save = () => {
console.log(Submitable) // logs undefiened
if (Submitable) {
return true
} else {
return `Please fill out the following fields before submitting:${values.map(el => ` ${el.name}`)}`
}
})

useEffect(() => {
if (values.length === 0) {
Submitable = true
//enableSave
} else {
Submitable = false
//disableSave
}
}, [values])

return (
<>
///jsx code block
</>
);
}

export default App;

我认为在 useEffect 函数中将 Submitable 设置为 true 或 false,该值将传递给其他函数,但在调用时,Submitable 记录未定义。如果我尝试将 Submitable 作为参数传递,它也会记录未定义。

最佳答案

useEffect 中的分配将在每次渲染时丢失。要随着时间的推移保留值,请将其存储在 useRef Hook 中,并将可变值保留在 current 属性中

const Component = () =>{
const submitable = useRef()

useEffect(() =>{
submitable.current = 'foo'
},[])

console.log(submitable.current) // 'foo'
}

关于javascript - 函数内的变量集未在其他函数中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58174893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com