从使用 next.js 切换到更简单的 Parcel/webpack 构建后,我已经尝试解决这个特定错误一个多星期了,但没有成功。
我不知道如何解决这个问题,所以我希望这里有人可以提供帮助。
完整错误:
TypeError: (0 , n.default) is not a function
at admin.js:47
at admin.js:23
at Object.next (admin.js:4)
at p (redux-saga-core.esm.js:1157)
at yn (redux-saga-core.esm.js:1108)
at redux-saga-core.esm.js:585
at d (redux-saga-core.esm.js:56)
at Y (redux-saga-core.esm.js:584)
at redux-saga-core.esm.js:1204
at h (redux-saga-core.esm.js:1271)
m @ io-6de156f3.js:111
Run Code Online (Sandbox Code Playgroud)
经过一段时间的研究后,我发现这个错误发生在 admin.ts 文件中的这一行:
https://github.com/marmelab/react-admin/blob/master/packages/ra-core/src/sideEffect/admin.ts#L29
现在真正奇怪的是,它似乎是从该./error导入导入 html,而不是实际的 JS 模块。
但这个错误应该是一些 redux-saga 内容的生成器。
切换到 Parcel 后,完全被这个错误难住了。我认为包裹和反应管理之间可能存在一些奇怪的不兼容性。所以我把 Parcel 换成了更典型的 webpack 构建...但是错误仍然存在。所以这可能与构建工具无关。
现在让事情变得更加复杂。如果我手动进入并从反应管理代码中取出该错误导入和函数调用。
出现了一个新错误,'o' is not a function所以在我看来,有些事情严重搞砸了。
我根本没有改变react-admin的版本或实现。
这是使用“react-admin”:“^2.9.8”,
任何对此的帮助将不胜感激!
我正在尝试使用react-admin 将数据发送到我的自定义API。我想发送文件,我可以看到有,我想将该数据作为多部分表单数据发送。我遇到过base64编码帮助页面,作为一个新手反应,我很难弄清楚我需要做什么才能将其转换为多部分表单数据。
如果有人可以引导我完成使其工作的代码,那就太好了!我是来学习的。
预先非常感谢。
作为 Storybook 的忠实粉丝,我喜欢在隔离中测试我的组件。
特别是表格。
然而,我很难弄清楚如何让我的表单甚至单个表单字段单独工作。(没有编辑、创建、资源和管理包装所有内容)。
我基本上想要的只是渲染一个带有单个输入的 SimpleForm 组件,以对每个输入进行原型设计。(我使用自定义输入,因为我不喜欢 Material-ui)
我的输入是用 addField 装饰的,ra-core就像这个 textInput 示例:
import React from 'react';
import { addField } from 'react-admin';
import sanitizeRestProps from './sanitizeRestProps';
import { Input } from 'antd';
import Labeled from './Labeled';
const TextInput = ({ id, label, labelPosition, input, isRequired, ...rest }) => (
<Labeled label={label} position={labelPosition} id={id} isRequired={isRequired}>
<Input id={id} {...input} {...sanitizeRestProps(rest)} />
</Labeled>
);
export default addField(TextInput);
Run Code Online (Sandbox Code Playgroud)
如果我尝试单独渲染此输入,则会收到错误“字段必须位于用 reduxForm() 装饰的组件内”
这是公平的...我想测试它在组件中构建时是否“有效”,所以我添加了一个 SimpleForm 包装器。
就像这样:
return (
<SimpleForm>
<TextInput label={label} …Run Code Online (Sandbox Code Playgroud) 我有一个CheckboxGroupInput这样的字段:
<CheckboxGroupInput source="fruits" choices={[
{ 'name': 'apples' },
{ 'name': 'pears' }
]} optionValue='name'/>
Run Code Online (Sandbox Code Playgroud)
fruits当用户选择这两个选项时,它会为字段生成如下所示的 json :
'fruits': ['apples','pears']
Run Code Online (Sandbox Code Playgroud)
我想在Listusing中显示它ChipField,而source我没有,因为 json 是一个纯字符串数组。
如果 json 看起来像这样,源将是“名称”fruits:[{'name':'apples'}, {'name':'pears'}]
<ArrayField source='fruits'>
<SingleFieldList>
<ChipField source='???' />
</SingleFieldList>
</ArrayField>
Run Code Online (Sandbox Code Playgroud)
如何使用ChipField OR显示纯字符串数组的内容,或者如何告诉CheckboxGroupInput生成对象数组而不是字符串数组?
我试图显示一个<Loading>组件,直到数据获取成功,
然后显示一个子组件。我不明白为什么状态不更新......
我该如何处理这个问题?
我正在使用react-admin,但我想这并不重要。
我有一个<Dashboard>应该传递defibs (Array)给<DefibsCard>.
当我登录时,defibs我<DefibsCard>有一个空数组。谢谢 !
const Dashboard = () => {
const dataProvider = useDataProvider();
const [loading, setLoading] = useState(true);
const [defibs, setDefibs] = useState([]);
const fetchDefibs = () => {
dataProvider.getList('defibrillateurs', {
filters: {}, sort: {field: 'id', order: 'ASC'}, pagination: {page: 1, perPage: 10}
}).then((response) => {
setDefibs(response.defibs);
setLoading(false);
})
}
useEffect(() => {
fetchDefibs();
console.log(loading)
}, [])
const classes = useStyles(); …Run Code Online (Sandbox Code Playgroud) 当前在react-admin中编辑多对多关系的“开箱即用”方式是什么?
更具体地说,有什么方法可以通过引用的表来 SelectArrayInput 或 AutoCompleteArrayInput 吗?
我的第一个表是stream
流表
我的第二个表是subject
主题表
他们的映射表是stream_subject
映射表
我必须像这个 编辑表单一样显示我的表单
目前,我正在使用引用数组输入,但它不起作用,我当前的代码如下:
<ReferenceManyField label='Subject' reference='stream_subject' target='stream_id'>
<ReferenceArrayInput label='Subject' reference='subject' source='subject_id'>
<SelectArrayInput source='name'>
<ChipField source='name' />
</SelectArrayInput>
</ReferenceArrayInput>
</ReferenceManyField>
Run Code Online (Sandbox Code Playgroud)
有没有办法为此创建多选下拉菜单,我什至尝试使用useQueryreact-admin中的钩子,但无法取得任何进展,即使有人可以帮助我,useQuery方法可以解决我的问题。为此,我使用 hasura-graphql datprovider:https://github.com/Steams/ra-data-hasura-graphql
我的 graphql 是这样的: graphql-query
onSuccess功能无法正常工作react-admin,
我的代码:
\nconst onSuccess = () => {\n redirect(\'list\', props.basePath);\n};\n\n\n<Edit \n onFailure={onFailure} \n onSuccess={onSuccess} \n title="Ediar Usu\xc3\xa1rio" \n {...props} \n>\n <SimpleForm \n variant="standard" \n toolbar={<CustomToolbar />} \n >\n</Edit>\nRun Code Online (Sandbox Code Playgroud)\n第一次,它工作得很好,但第二次,什么也没有发生。
\n甚至不触发保存事件
\n我<TextInput>在 a 中使用 a <SimpleForm>,当我在运行时清除该值时,react-admin 将属性的值设置为将null值发送到 DataProvider 时的值。我想存储空字符串而不是 null。那可能吗?如果是这样,怎么办?
自从我将react-admin更新到版本3.10.0后,我在Chrome控制台中看到了这条消息,我试图深入研究该文档,但找不到任何信息或示例。任何人遇到过这个,或者幸运的是react-admin的任何成员看到这个,请帮忙!
Edit or Create child components must be used inside a <SaveContextProvider>. Relying on props rather than context to get persistence related data and callbacks is deprecated and won't be supported in the next major version of react-admin.
Run Code Online (Sandbox Code Playgroud) 我正在开发一个 Next.js 应用程序,需要一个管理面板来管理数据、用户和帖子。我认为最好将面板设置为单独的应用程序,而不是当前应用程序中的新路径。
我看过react-admin,但它是常规的React.js。
我看到了这些关于使用单独的 React-admin 应用程序设置 Next.js 的帖子,但我对 nginx 不太了解。
Nginx 反向代理 nextjs 和react-admin
如果您之前为 Next.js 设置过管理面板,有什么建议吗?
react-admin ×10
reactjs ×4
graphql ×1
hasura ×1
javascript ×1
material-ui ×1
next.js ×1
nginx ×1