react-admin 展开未知的数据提供者函数:getOne

react-admin expand Unknown dataProvider function: getOne

我正在尝试使用 react-admin 创建扩展选项。

在我的 AdminPanel.js:

class AdminPanel extends React.Component {
    render() {
        return (
            <div>
                <Admin dataProvider={myDataProvider}>
                    ...
                    <Resource title="Submission" name="submission" list={SubmissionList} />
                    ...
                </Admin>
            </div>
        );
    }
}

const SubmissionList = (props) => (
    <List {...props} pagination={<PostPagination />}>
        <Datagrid expand={<ContentShow/>}>
               ...
        </Datagrid>
    </List>
);
const ContentShow = props => (
    <Show
        {...props}
        title=" "
    >
        <SimpleShowLayout>
            <RichTextField source="content" />
        </SimpleShowLayout>
    </Show>
);

问题是当我尝试扩展条目时,它给我错误提示 Unknown dataProvider function: getOne.

我该如何解决?

最好不要再使用dataProvider

不用Show直接用SimpleShowLayout

const ContentShow = props => (
    <SimpleShowLayout>
        <RichTextField source="content" />
    </SimpleShowLayout>
);

错误原因:

ContentShow 是否作为 show 道具传递给 Resource 组件?如果不是,则 ContentShow 组件没有 actions 道具。所以它找不到函数getOne。 (参考:https://github.com/marmelab/react-admin/blob/53aac9b84760cf56fa3d5bf5a05cea48245e3c92/packages/ra-core/src/controller/useShowController.ts#L57

扩展属性的正确用法:

您应该传递一个依赖于记录道具(content 在本例中为对象)的演示组件。

简单我console.log道具,发现错误。

这是我的解决方案:

const ContentShow = props => (
    <SimpleShowLayout>
        <RichTextField source={props.record.content}/>
    </SimpleShowLayout>
);