useLocation Hook returns 错误的路径

useLocation Hook returns wrong path

我构建了一个 Ionic-React 应用程序,它可以扫描二维码并基于它连接到设备。我使用 useLocation()useHistory() 挂钩通过我的应用程序进行路由。

我像这样传递一些数据:

    const Home: React.FC = () => {

  let history = useHistory()

  const startScan = async () => {
//Some Barcode Logic
 history.replace("/gatherData", {scan: result.content})
    }};

并使用以下方式接收:

const GatherData: React.FC = () => {

    let history = useHistory();
    let location = useLocation();

    useIonViewWillEnter(() => {
        console.log(location);
    });

我像往常一样做了这个,它似乎工作得很好。但是现在,不知何故,useLocation() Hook 不再识别历史变化。虽然我被路由到下一页,但 useLocation() returns 旧路径:

{pathname: '/home', ... state: undefined, key: 'bdwus9'}

我确实尝试重新编码,但这并没有解决问题。还试图捕获 HomeFCGatherDataFC 中的错误也无济于事。如果有人能解决问题就太好了...

您的 useIonViewWillEnter 当前处于过时状态,因为它已被缓存,就像许多其他挂钩一样。要解决此问题,您需要明确告诉它它的依赖位置已更改。

useIonViewWillEnter(() => {
    console.log(location);
}, [location]/*depdendency array*/);