Я не тестировал его, но вы, вероятно, можете использовать normalize
prop redux-form на компоненте ввода. Что-то вроде:
const encryptPassword = (value, previousValue, allValues, previousAllValues) => {
// Encypt the password somehow
const encyptedPassword = ...;
return encyptedPassword
}
<TextInput type="password" normalize={encryptPassword} />
Другим вариантом будет преобразование полезной нагрузки перед отправкой ее в ваш API в вашем dataProvider
. Что-то вроде:
// in src/dataProvider.js
import dataProvider from 'ra-data-simple-rest';
// defaultDataProvider is your original dataProvider which we decorate here
const addEncryption = defaultDataProvider => (fetchType, resource, params) => {
let finalParams = params;
if (resource === 'users' && fetchType === 'CREATE') {
finalParams = {
...params,
password: encryptPassword(params.password),
};
}
return defaultDataProvider(fetchType, resource, finalParams);
}
export default addEncryption(dataProvider);