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

Pass Values From One Modal To Another

我在我的一个模态中使用这些:

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}
   />

但是,这不能正常工作。有时价值只是没有出现。否则,我在上一个模式中输入的值不会更新。例如,如果我一开始写 'FirstPoint' ,并尝试使用不同的值几次,它仍然在新模式中显示 'FirstPoint' 。

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

您可以添加一个 useEffect 挂钩来监听 props.startingProps,正确更新状态,例如:

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