将值从一个模态传递到另一个模态

时间:2020-04-28 12:30:15

标签: 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}
   />

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

1 个答案:

答案 0 :(得分:2)

useState将其参数作为 initial 值。这意味着,在其他模态中对其进行更改后,由于state不会根据参数更改自动更新,因此它不同步。

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

useEffect(() => {
  setNewStartingPoint(props.startingPoint);
}, [props.startingPoint]);
相关问题