首页 > 解决方案 > 无法在`conditions`中使用useState Hooks“设置”

问题描述

我只是在学习创造functional component,但setState在使用条件时遇到了问题React Native

这是一个例子:

const FlixTextInput=({
}, ref)=>{
  const [value, setValue] = React.useState('')
  
  const onChangeText=(text)=>{
    if(props.regex){
      try {
        let validate = new RegExp(props.regex)
        console.log('[FlixTextInput] validate regex', validate.test(text))
        console.log('[FlixTextInput] textz', text)
        console.log('[FlixTextInput] value', value)
        if(validate.test(text) === true) setValue(text) //cannot setValue here
      } catch (error) {
        throw new Error(error)
      }
    } else {
      setValue(text)
    }
  }
  
  return (
    <TextInput
      onChangeText={onChangeText}
      value={value}
    />
  )
}

export default React.forwardRef(FlixTextInput)

我在这样的父组件中使用:

<FlixTextInput
  ref={i=>this.textVal = i}
  regex={/^[a-zA-Z]+$/g}
/>

但即使是真的setValue也行不通。regex

难道我做错了什么?我试图搜索问题,但我还没有找到正确的解决方案。

标签: reactjsreact-nativereact-hooks

解决方案


推荐阅读