(自动-)在react管理中突变后更新查询



在自定义的react管理页面上,我使用Query组件来获取和显示数据,并使用withDataProvider装饰器来保存突变:

export const Controller = ({data, dataProvider}: any) => {
...
dataProvider(UPDATE, "users", { id: data.id, data: {...data, newField: "foo" })
...
}
export const Container = ({ data, loading, loaderror, ...props }: any) => {
const ConnectedController = useMemo(() => withDataProvider(Controller), []);
if (loading) { return <p data-testid="loading">Loading</p>; }
if (loaderror) { return <p data-testid="error">Error</p>; }
return <ConnectedController {...props} data={data} />;
}
export const InjectInitialValues = ({ userid, ...props }: InjectProps) => {
return <Query type="GET_ONE" resource="users" payload={{ id: userid }}>
{({ data, loading, error }: { data: object, loading: boolean, error: string }) => (
<Container {...props} data={data} loading={loading} loaderror={error} />
)}
</Query>
};

但是,保存更改后,查询组件不会触发具有新值的重新提交程序。有人知道如何将其连接在一起,以便在更改后重新发出查询吗?

非常感谢。

你能添加你的代码吗?要运行重新渲染,您应该通过props更新状态或接收新数据,也可以运行强制更新,但我不确定它是否会对您有所帮助。首先我们应该看到代码

在我看来,这一行有问题,所以您设置了一个空的依赖项列表[]

const ConnectedController = useMemo(() => withDataProvider(Controller), []);

当您通过useMemo挂钩的最后一个参数指定依赖项列表时,它应该包括所有使用的值,React数据流中涉及的,包括优点、状态及其衍生物。

最新更新