Reactjs 如何正确地在show页面上实现变异,而不是对react admin上的当前资源执行变异
我有显示页面,此页面应该从其资源加载数据,但此页面不应该更新此资源。此页面不应更新当前资源的项,而应进行不同的更改。例如,我有用户资源,我有mywebsite.com/users/uniq-user-id/show页面。我可以在这个页面上看到用户。但当我按下按钮时,请求不应该转到用户资源,也不应该改变用户资源。相反,这种变异应该去(例如音乐)并在那里执行变异。我可以使用这个钩子,但我不确定使用这个钩子并把它按到按钮上是最好的解决方案。react-admin是否已经为此特定案例创建了组件?我认为react-admin没有此类自定义组件,并且同意使用这些组件 您可以通过代理来拦截数据提供程序请求,并重新路由用户: v2 v3Reactjs 如何正确地在show页面上实现变异,而不是对react admin上的当前资源执行变异,reactjs,react-admin,Reactjs,React Admin,我有显示页面,此页面应该从其资源加载数据,但此页面不应该更新此资源。此页面不应更新当前资源的项,而应进行不同的更改。例如,我有用户资源,我有mywebsite.com/users/uniq-user-id/show页面。我可以在这个页面上看到用户。但当我按下按钮时,请求不应该转到用户资源,也不应该改变用户资源。相反,这种变异应该去(例如音乐)并在那里执行变异。我可以使用这个钩子,但我不确定使用这个钩子并把它按到按钮上是最好的解决方案。react-admin是否已经为此特定案例创建了组件?我认为r
谢谢你的帮助!解决方案是使用react最终表单创建页面并手动收集数据。
import { UPDATE, UPDATE_MANY } from 'react-admin'
const routerDataProvider = dataProvider => (verb, resource, params) => {
if ((verb === UPDATE || verb === UPDATE_MANY) && resource === 'users') {
resource === 'music'
//transform params to match music resource expected format
}
return dataProvider(verb, resource, params)
}
const routerDataProvider = dataProvider => ({
...dataProvider,
update: (resource, params) =>
dataProvider(resource === 'users' ? 'music' : resource, params),
updateMany: (resource, params) =>
dataProvider(resource === 'users' ? 'music' : resource, params),
})