Я недавно обнаружил реагировать-админ. Кажется, все в порядке, но я столкнулся с проблемой, для которой не нашел решения:
При редактировании записи существующий все поля ввода пусты. При отправке пустой формы все атрибуты обнуляются.
Это мой код:
// src/users.js
export const UserEdit = (props) => (
<Edit title = "Edit User" {...props}>
<SimpleForm>
<DisabledInput label = "Id" source = "id" />
<TextInput source = "first_name" />
<TextInput source = "last_name" />
</SimpleForm>
</Edit>
);
// App.js
const restClient = jsonAPIRestClient("http://localhost:3000/admin");
const App = () => (
<Admin dataProvider = {restClient}>
<Resource name = "users" list = {UserList} edit = {UserEdit}/>
</Admin>
);
В качестве адаптера данных я использую jsonAPIRestClient
. Все записи хранятся и доступны в магазине redux.
Что интересно: в форме отображается идентификатор DisabledInput
.
Что мне не хватает?
Редактировать:
package.json
{
"name": "admin",
"version": "0.1.0",
"private": true,
"dependencies": {
"aor-jsonapi-client": "^0.2.0",
"prop-types": "^15.6.2",
"react": "^16.5.0",
"react-admin": "^2.3.0",
"react-dom": "^16.5.0",
"react-scripts": "1.1.5"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
Изменить 2: Я только что узнал, что атрибуты пользователей находятся в полях ввода страницы редактирования для ок. 1/10 секунды. Значит поля расчищены ?!
РЕДАКТИРОВАТЬ 3: Вот действие redux, которое приводит к этой ошибке:
Итак, я думаю, что здесь не так, это поставщик данных, который неправильно хранит выбранный единственный ресурс в хранилище redux. Это верно?
РЕДАКТИРОВАТЬ 4: К сожалению, кажется, что поставщик данных плохой. В настоящий момент репозиторий не обслуживается. Есть пиар, который направлен на решение этой проблемы.
@Kmaschta Я обновил вопрос и добавил свой package.json
Проблема в том, что вы используете aor-jsonapi-client
, клиент для Админ-на-отдыхе, который является старой версией React Admin.
Чтобы решить вашу проблему, я бы порекомендовал использовать связанного поставщика данных для React Admin, например:
Дополнительную информацию см. В документация о поставщиках данных в React Admin.
Если этот клиент затем может быть удален отсюда: marmelab.com/react-admin/DataProviders.html#available-provid ers
Вы правы, я за это пиар открыл: github.com/marmelab/react-admin/pull/2300
Я только что нашел еще один рабочий jsonapi-клиент с реактивным администратором, здесь: https://github.com/henvo/ra-jsonapi-client
который можно установить с помощью:
npm install ra-jsonapi-client
Привет, какую версию react-admin вы используете? Возможно, это ошибка, но я могу помочь вам решить проблему. Не могли бы вы повторить проблему в этой песочнице кода, пожалуйста, и дайте мне ссылку? codeandbox.io/s/olr88y53xy