#reactjs #react-admin
Вопрос:
Я пытаюсь реализовать модуль react-admin. Прохождение 30-минутного урока, который у них есть на веб-странице. Но он продолжает ошибаться с этим сообщением об ошибке
Error: React.Children.only expected to receive a single React element child.
Я следую пошаговому руководству, чтобы код был похож на то, что доступно на их домашней странице.
Вот мой компонент приложения
import * as React from "react";
import { Admin, Resource } from 'react-admin';
import { PostList } from './posts';
import jsonServerProvider from 'ra-data-json-server';
import { UserList } from './users';
const dataProvider = jsonServerProvider('https://jsonplaceholder.typicode.com');
const App = () => {
return (
<Admin dataProvider={dataProvider}>
<Resource name="posts" list={PostList} />
<Resource name="users" list={UserList} />
</Admin>
)
}
export default App;
Когда я запустил приложение create-react, в компоненте индекса был React.Strictmode. Я где-то читал, что это может быть проблемой, поэтому я удалил строгий режим, и мой компонент индекса теперь выглядит так
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
ReactDOM.render(
<App />,
document.getElementById('root')
);
Кто-нибудь знает, как решить эту проблему?
Вот как выглядит компонент «Другие мои посты»
import * as React from "react";
import {
List,
Datagrid,
TextField,
ReferenceField,
EditButton,
Edit,
Create,
SimpleForm,
ReferenceInput,
SelectInput,
TextInput,
} from 'react-admin';
export const PostList = props => (
<div>
<List {...props}>
<Datagrid>
<TextField source="id" />
<ReferenceField source="userId" reference="users">
<TextField source="name" />
</ReferenceField>
- <TextField source="id" />
<TextField source="title" />
- <TextField source="body" />
<EditButton />
</Datagrid>
</List>
</div>
)
export const PostEdit = props => (
<Edit {...props}>
<SimpleForm>
<TextInput disabled source="id" />
<ReferenceInput source="userId" reference="users">
<SelectInput optionText="name" />
</ReferenceInput>
<TextInput source="title" />
<TextInput multiline source="body" />
</SimpleForm>
</Edit>
);
export const PostCreate = props => (
<Create {...props}>
<SimpleForm>
<ReferenceInput source="userId" reference="users">
<SelectInput optionText="name" />
</ReferenceInput>
<TextInput source="title" />
<TextInput multiline source="body" />
</SimpleForm>
</Create>
);
Комментарии:
1. Очевидно, ваша проблема в других файлах, с ними все в порядке.
2. я обновил вопрос другим компонентом..есть какие-нибудь советы?
3. В списке сообщений <div> определенно излишне, попробуйте комментировать свои компоненты один за другим, пока ошибка не исчезнет.
4. Можете ли вы показать нам, как выглядят пользовательские компоненты?
5. я понял это, ребята… спасибо 🙂