【问题标题】:Tutorial throws context is undefined error in SaveContext教程在 SaveContext 中抛出 context is undefined 错误
【发布时间】:2020-12-15 10:33:00
【问题描述】:

这可能是一个新手问题,但我正在通过 react-admin/Tutorial.html 工作,当使用 EditGuesser 时,“编辑”页面失败,报告“TypeError:上下文未定义”。 AFAIK,我已按照说明进行操作。

在“添加创建和编辑功能”部分进行调整以引入“edit={EditGuesser}”更改后报告错误。我可以看到教程代码已被编辑,因为 dataProvider 的 const 定义已被删除。是否还删除了其他内容?

如果错误页面已关闭,则基础页面只会显示“出现问题。出现客户端错误,您的请求无法完成。'

感谢您的帮助。

错误详情如下:

类型错误:上下文未定义 使用保存上下文 prj_dir/node_modules/ra-core/esm/controller/details/SaveContext.js:23
  20 |  */
  21 | export var useSaveContext = function (props) {
  22 |     var context = useContext(SaveContext);
> 23 |     if (!context.save || !context.setOnFailure) {
  24 |         /**
  25 |          * The element isn't inside a <SaveContextProvider>
  26 |          * To avoid breakage in that case, fallback to props

开始于:

保存按钮 prj_dir/node_modules/ra-ui-materialui/esm/button/SaveButton.js:75
  72 | var notify = useNotify();
  73 | var translate = useTranslate();
  74 | var setOnSave = useContext(FormContext).setOnSave;
> 75 | var _d = useSaveContext(props), setOnSuccess = _d.setOnSuccess, setOnFailure = _d.setOnFailure, setTransform = _d.setTransform;
     | ^  76 | var handleClick = function (event) {
  77 |     // deprecated: use onSuccess and transform instead of onSave
  78 |     if (typeof onSave === 'function') {

【问题讨论】:

标签: react-admin


【解决方案1】:

EditGuesser 似乎有问题。如果您已在您的 posts.js 中插入 PostEdit 的代码转储,您只需将 EditGuesser 替换为 PostEdit:

// in src/App.js    
- import { Admin, Resource, EditGuesser } from 'react-admin';
+ import { Admin, Resource } from 'react-admin';
- import { PostList} from './posts';
+ import { PostList, PostEdit} from './posts';
import { UserList } from './users';

const App = () => (
  <Admin dataProvider={dataProvider}>    
  -  <Resource name="posts" list={PostList} edit={EditGuesser} />
  +  <Resource name="posts" list={PostList} edit={PostEdit} />
     <Resource name="users" list={UserList} />
  </Admin>
);

【讨论】:

    【解决方案2】:

    EditGuesser 在最新的 react-admin 版本 (3.11) 中被破坏。 3.11.2 (https://github.com/marmelab/react-admin/pull/5728) 中即将推出修复程序。同时,请使用 3.10.4 版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-01
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多