我试着在表明Datagrid一个Field是一个多对多的关系(中间表)。
我有这些表:
组 - group_subject - 主题
group_subject 也有属性,如评分细则和日程表
这是一个多对多的关系。我想在<Resource> group一个组所连接的所有主题中显示。
使用类似<SingleFieldList>:
作为这个图像
我正在使用react-admin. 有没有办法在这种关系中获得价值?
我想访问 simpleFormIterator 的索引。我怎样才能做到这一点?我有一个类似的代码,我试图在 SelectInput 组件中访问它
<ArrayInput source='services'>
<SimpleFormIterator>
<TextInput source='id' label="Service Name" validate={this.RequiredAndRegex} />
<FormDataConsumer>
{({ formData, ...rest }) =>
<ArrayInput source='parametervalues'>
<SimpleFormIterator>
<TextInput source='id' label="Parameter Values" validate={this.RequiredAndRegex} />
<SelectInput label="Paramater Type"
source="id"
choices={this.getParameters(formData.services[index].servicetype)}
optionText={optionRenderer}
optionValue="id" />
</SimpleFormIterator>
</ArrayInput>
}
</FormDataConsumer>
</SimpleFormIterator>
</ArrayInput>Run Code Online (Sandbox Code Playgroud)
我一直在寻找一种解决方案,在react-admin中成功验证后重定向到特定的url,
当我粘贴http://localhost:1234/#/students/sdf2343afs32到网址上时(如果已登录),我将获得用户详细信息页面,但如果未登录,则在登录后会显示主页
我需要在登录页面中再插入一个字段,因此,在 JSON 登录请求中插入另一个条目,尽管我设法在登录页面中插入该字段(作为带有FormControls 的Select字段),但在插入时遇到了麻烦将所选选项添加到 JSON 请求中。
login.js:
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { propTypes, reduxForm, Field } from 'redux-form';
import { connect } from 'react-redux';
import compose from 'recompose/compose';
import Avatar from '@material-ui/core/Avatar';
import Button from '@material-ui/core/Button';
import Card from '@material-ui/core/Card';
import CardActions from '@material-ui/core/CardActions';
import CircularProgress from '@material-ui/core/CircularProgress';
import TextField from '@material-ui/core/TextField';
import { withStyles } from '@material-ui/core/styles';
import LockIcon from '@material-ui/icons/Lock';
import { MenuItem, Select, FormControl, …Run Code Online (Sandbox Code Playgroud) 我想将一个自定义参数传递给管理员的 dataProvider,类型为“GET_LIST”。
我在 App.js 中有这样的东西:
<Admin dataProvider={dataProvider}>
<Resource name="posts" list={PostList} myCustomAttr={"10"} />
<Resource name="users" list={UserList} myCustomAttr={"15"} />
</Admin>
Run Code Online (Sandbox Code Playgroud)
“dataProvider”是一个自定义 dataProvider,我希望在调用它时拥有“myCustomAttr”。
所以我的自定义 dataProvider 可能如下所示:
export default (type, resource, params) => {
if (type == 'GET_LIST') {
if (params.myCustomAttr == '10') {
//Do something
}
}
}
Run Code Online (Sandbox Code Playgroud) 从使用 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”,
任何对此的帮助将不胜感激!
我有一个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
react-admin ×10
reactjs ×4
dataprovider ×1
graphql ×1
hasura ×1
javascript ×1
material-ui ×1
parameters ×1
react-redux ×1