javascript - 将值从一种模式传递到另一种模式

标签 javascript typescript react-native react-hooks native-base

我在我的一种模式中使用这些:

const [startingPoint, setStartingPoint] = useState('');

<Input
  placeholder="Start"
  onChangeText={inputText => setStartingPoint(inputText)}
  value={startingPoint}
/>

我想将此处输入的值传递给下一个模式,并自动将其写入另一个输入字段。我试图传递这样的值:
<AvailableTripsPage
  showAvailableTripsPage={showAvailableTripsPage}
  toggleShowPage={toggleAvailableTripsPage}
  startingPoint={startingPoint}
/>

这是来自传递值的第二个模式。
const [newStartingPoint, setNewStartingPoint] = useState(startingPoint);

<Item fixedLabel>
   <Input 
      //onChangeText={text => setNewStartingPoint(text)}
      value={newStartingPoint}
   />

但是,这不能正常工作。有时值(value)只是没有显示出来。否则,我在上一个模式中输入的值不会更新。例如,如果我在开头写了“FirstPoint”,并尝试了几次不同的值,它仍然在新模态中显示“FirstPoint”。

最佳答案

useState将其参数作为初始值。这意味着,在您在另一个 Modal 中更改它之后,它会因为 state 而变得不同步。不会自动更新参数更改。

您可以添加 useEffect会听的 Hook props.startingProps ,正确更新状态,例如:

useEffect(() => {
  setNewStartingPoint(props.startingPoint);
}, [props.startingPoint]);

关于javascript - 将值从一种模式传递到另一种模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61480218/

相关文章:

javascript - jQuery:函数未执行

javascript - NodeJS 服务器错误

javascript - React 组件由于多种样式而重新渲染

javascript - 使用 refs 在 React 中处理 iframe

javascript - Ext.js 将列添加到属性网格

javascript - Angular ngStyle 解析器错误 : Unexpected token [, 需要标识符或关键字

javascript - 如何在客户端的 Angular 应用程序中记录所有可能发生的控制台错误?

angularjs - 如何在 angularjs 中设置 Gillardo/bootstrap-ui-datetime-picker 的全局配置

ios - 当行向左滑动时切换操作

javascript - 在 react-native-tab-view 中创建路由时出现不变冲突