返回上一页时更新状态

Update state when returning to previous page

我正在从“个人资料”页面上显示的查询调用中获取描述。当用户想要编辑此描述时,他们会转到另一个名为“editProfile”的页面。当他们完成编辑后,他们可以按提交,这将更改服务器上的描述。我的问题是,当我 return 到“个人资料”页面时,UI 中的描述没有更新。我该如何最好地解决这个问题?使用钩子或某种状态管理,如 redux?提前致谢

function Profile({ navigation }: ProfileStackNavProps<"Profile">) {
  const { loading, error, data } = useQuery(GET_DESCRIPTIONS_FROM_ID);
  const [description, setDescription] = useState(data.profiles[0].description);

  return (
     <Text>{description}</Text>
     //bunch of other code
     <Button
          onPress={() => {
            navigation.navigate("EditProfile", { description });
          }}
        >

  )
}

function EditProfile({ route }: ProfileStackNavProps<"EditProfile">) {
  const [text, setText] = useState(route.params.description);
  const [editDescription, { loading, error }] = useMutation(EDIT_DESCRIPTION);
  return (
    <Center>
      <TextInput onChangeText={setText} value={text} editable={true} />
      <MyButton
        title={"Save"}
        onPress={() => {
          editDescription({
            variables: { description: text },
          });
        }}
      />
    </Center>
  );
}

导航到 EditProfile 时,您传递一个回调函数,如下所示:

<Button
          onPress={() => {
            navigation.navigate("EditProfile", { description,cb:(newDes)=>{setDescription(newDes)} });
          }}
        >

然后,当您完成编辑时,调用您传递的函数:

route.params.cb(newDes)