教程在 SaveContext 中抛出上下文未定义错误

2024-04-30

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

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

如果错误页面关闭,则底层页面只会显示“出现问题”。发生客户端错误,无法完成您的请求。”

如有任何帮助,我们将不胜感激。

错误详细信息是:



TypeError: context is undefined
useSaveContext
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

这是从:



SaveButton
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') {

这似乎是 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>
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

教程在 SaveContext 中抛出上下文未定义错误 的相关文章

随机推荐