Javascript react admin中发生变异后的(自动)更新查询

Javascript react admin中发生变异后的(自动)更新查询,javascript,reactjs,react-admin,Javascript,Reactjs,React Admin,在自定义react admin页面上,我使用组件获取和显示数据,并使用装饰器保存变异: export const Controller = ({data, dataProvider}: any) => { ... dataProvider(UPDATE, "users", { id: data.id, data: {...data, newField: "foo" }) ... } export const Container = ({ data, loading

在自定义react admin页面上,我使用组件获取和显示数据,并使用装饰器保存变异:

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>
};
export const Controller=({data,dataProvider}:any)=>{
...
数据提供程序(更新,“用户”,{id:data.id,数据:{…data,newField:“foo”})
...
}
export const Container=({data,loading,loaderror,…props}:any)=>{
const ConnectedController=usemo(()=>withDataProvider(Controller),[]);
if(加载){return

加载

;} if(loaderror){return

error

;} 返回; } export const InjectInitialValues=({userid,…props}:InjectProps)=>{ 返回 {({data,loading,error}:{data:object,loading:boolean,error:string})=>( )} };
但是,保存更改后,查询组件不会使用新值触发重新加载。有人知道如何将其插入到一起,以便在更改后查询重新加载吗


非常感谢。

你能添加你的代码吗?要运行重新渲染,你应该更新状态或通过道具接收新数据,你也可以运行force update,但我不确定它是否对你有帮助。首先我们应该看看代码,你能添加你的代码吗?要运行重新渲染,你应该更新状态或通过道具接收新数据,你也可以运行force u更新,但我不确定它是否对您有帮助。首先,我们应该查看代码在我看来,您在这行中有问题,所以您设置了一个空的依赖项列表
[]

const ConnectedController = useMemo(() => withDataProvider(Controller), []);
当您通过useMemo钩子的最后一个参数指定依赖项列表时,它应该包括所有使用的值,
React数据流中涉及的,包括pros、state及其派生项。

在我看来,您在这一行中遇到了问题,因此您设置了一个空的依赖项列表
[]

const ConnectedController = useMemo(() => withDataProvider(Controller), []);
当您通过useMemo钩子的最后一个参数指定依赖项列表时,它应该包括所有使用的值,
React数据流中涉及的,包括pros、state及其派生项。

有一个解决方法:查询中的数据可以保存为组件状态,在更新时可以更改状态。但是,这似乎不是理想情况。有一个解决方法:查询中的数据可以保存为组件状态更新时,可以改变状态。然而,这似乎不是理想的情况。