首页 > 解决方案 > 带有状态记录的 admin-on-rest 提要

问题描述

我有一个 DisabledInput 像

<DisabledInput source="values" />

但我想为这个字段提供一个状态变量。因为这个状态变量可以随着用户交互而改变。更准确地说,在页面上,有一个列表框,当用户向该列表框添加新值时,“值”状态变量会发生如下变化

“item1,item2,item3 ...”,我想将此状态变量作为数据提供给 DisabledInput

this.state.values

我不知道该怎么做。也许有如下方法,但我做不到

<DisabledInput source="values" record={this.state.values} />

可能吗?

标签: reactjsadmin-on-restreact-admin

解决方案


我使用 ArrayInput 如下。我之前没有意识到这个组件。

<SelectInput source='type'
            choices={[
                { name: 'String', id: 'string' },
                { name: 'Enum', id: 'enum' },
                { name: 'Decimal', id: 'decimal' }
            ]}
            onChange={event => {
                const type = Object.values(event).slice(0, -1).join('');
                this.setState({
                    listEditorVisible: type === 'enum',
                    regexEditorVisible: type === 'string',
                    decimalEditorVisible: type === 'decimal'
                });
            }}
/>
{this.state.listEditorVisible ?
    <ArrayInput source='values'>
        <SimpleFormIterator>
            <TextInput source='name' />
        </SimpleFormIterator>
    </ArrayInput>
    :
    null}
{this.state.decimalEditorVisible ?
    <div>
        <NumberInput source="min" /><br />
        <NumberInput source="max" /><br />
        <NumberInput source="res" /><br />
        <TextInput source="unit" />
    </div>
    :
    null}

推荐阅读