如何使用已获取的数据填充<selectinput>选择

时间:2018-06-28 02:37:15

标签: reactjs redux admin-on-rest

在我的App组件中,我有一个带有编辑组件的订阅资源:

<Resource name="subscriptions" list={SubscriptionList} edit={SubscriptionEdit} />

SubscriptionEdit看起来像这样:

 export const SubscriptionEdit = props => (
  <Edit title={<SubscriptionTitle />} {...props}>
    <TabbedForm >
      <FormTab label="Info">
        ...

        <SelectInput
          source="typeSubscription"
          choices={[
            { id: 'monthly', name: 'Monthly' },
            { id: 'anual', name: 'Anual' },
          ]}
          label="Subscription plan"
        />
      </FormTab>
    </TabbedForm>
  </Edit>
);

进入此视图时,从端点获取的数据是这样的JSON:

{
  id: 1,
  typeSubscription: null,
  selectedDay: null,
  daysAvailable: [
      { id: '07-01-2018', name: 'First day` },
      { id: '07-03-2018', name: 'Second day` },
      { id: '07-07-2018', name: 'Third day` },
      { id: '07-08-2018', name: 'Fourth day` },
  ],
}

我需要做的是使用daysAvailable数组添加另一个SelectInput,以便为“ selectedDay”选择日期。

<SelectInput
      source="selectedDay"
      choices={NEED TO ADD daysAvailable HERE!}
      label="Select an available day"
 />

此数据已在商店和记录道具中提供,但我不知道如何在选择中正确使用它。尝试像道具一样直接使用它会导致不同的错误,我认为thas很正常,因为我搞砸了redux和rest-admin的内部。

我尝试使用ReferenceInput并按照文档建议将SelectInput的选项留空,但是由于这几天的更改基于用户ID的变化,我找不到将此参数添加到新Resource的方法。 / p>

我正在使用静态管理,但计划在不久的将来升级到react-admin。

话虽如此,任何帮助将不胜感激。

干杯!

1 个答案:

答案 0 :(得分:0)

这就是ReferenceInput的作用。您可以提供资源名称,如下所示:

import { ReferenceInput, SelectInput } from 'react-admin'

<ReferenceInput label="Post" source="post_id" reference="posts">
    <SelectInput optionText="title" />
</ReferenceInput>