【发布时间】:2020-04-24 13:26:08
【问题描述】:
我有一个 React 组件,它从 IndexedDB 获取一些数据,这是一个异步任务,它使用 useParams 钩子传入的 url 中的 id,假设 id = 1。 当我点击示例中的链接时,id 变为 2,但此时没有任何反应,组件不会重新渲染。
我需要做什么才能让它工作?我只是不明白为什么它现在不起作用。 有人能启发我吗?
import React, {useState} from 'react';
import { Link, useParams } from "react-router-dom";
import { useAsync } from 'react-async';
export default function (props) {
let {id} = useParams();
const {data, error, isLoading} = useAsync({ promiseFn: loadData, id: parseInt(id)});
if (isLoading) return "Loading...";
if (error) return `Something went wrong: ${error.message}`;
if (data)
return (
<>
<h1>{data.name}</h1>
<Link to={'/2'}>other id</Link>
</>
);
}
【问题讨论】:
标签: reactjs indexeddb react-router-v5 react-async