问题描述
我使用的是 react-admin
,我的数据提供者是 simpleRestProvider
。
我需要根据用户行为向请求动态添加标头。
有可能吗?
谢谢:)
解决方法
是的,这是可能的。插入 react-admin
管道的一个非常方便的地方是传递给 dataProvider 的 httpClient
。 Also shown in the docs
import { fetchUtils,Admin,Resource } from 'react-admin';
import simpleRestProvider from 'ra-data-simple-rest';
const httpClient = (url,options = {}) => {
if (!options.headers) {
options.headers = new Headers({ Accept: 'application/json' });
}
const { token } = JSON.parse(localStorage.getItem('auth'));
options.headers.set('Authorization',`Bearer ${token}`);
return fetchUtils.fetchJson(url,options);
};
const dataProvider = simpleRestProvider('http://localhost:3000',httpClient);
编辑:如果您想在每次 dataProvider
调用时动态传递标头,我想您将不得不修改 a 的实现
dataProvider
目前 ra-data-simple-rest
package 不会通过接收 options
参数将其传递给 httpClient 而是在内部创建它。您不必从头开始构建它 - 只需 fork 存储库并创建一个增强版本即可。