为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

12345678_0001 2021-11-04 16:03:49
我正在使用 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 作为参数传递,它也会记录未定义。
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

useEffect每次渲染时都会丢失内部的分配。为了随着时间的推移保留值,将其存储在一个useRef钩子中,并将可变值保留在current属性中


const Component = () =>{

    const submitable = useRef()


    useEffect(() =>{

        submitable.current = 'foo'

    },[])


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

}


查看完整回答
反对 回复 2021-11-04
  • 1 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信