反应导航-setOptions()标头中的访问状态

时间:2020-05-27 08:17:50

标签: javascript reactjs react-native closures react-navigation

我正在headerRight内使用自定义按钮覆盖react-navigationReact.useEffect选项。 按下按钮时,我需要访问状态name,但获得的值不是当前值。

const [name, setName] = React.useState('')

React.useEffect(() => {
  navigation.setOptions({
    headerRight: function HB() {
          return (
            <HeaderBtn onPress={submit}>
              Submit
            </HeaderBtn>
          )
        }
      : null,
  })
}, [])

function submit() {
  console.log(name) // ''
  // It always returns an empty string, instead of the
  // most recent name setted by TextInput.
  // How can I access the current name?
}

return (
  <TextInput
    nativeID="inputNameLabel"
    onChangeText={setName}
  />
)

是否有任何方法可以访问当前的name而不必在每次重新渲染时都调用setOptions()? (也可以将name添加到.useEffect数组依赖项中)

0 个答案:

没有答案