如何将选项标记为选中

时间:2019-03-28 09:14:18

标签: reactjs material-ui react-admin

如何为<SelectArrayInput>组件内部的选项设置选定的属性?我尚未意识到如何设置选定的属性。

我已经尝试过在其中放置一个选定的属性,但是它似乎不起作用。

const tec = [
    { name: "Apple", id: 1, selected: true},
    { name: "Facebook", id: 2 },
    { name: "Netflix", id: 3 },
    { name: "Tesla", id: 4 },
    ];

const ReferrenceSelectBox = ({ source, record = {} }) => <SelectArrayInput choices={ tec } />;

ReferrenceSelectBox.propTypes = {
    label: PropTypes.string,
    record: PropTypes.object,
    source: PropTypes.string.isRequired,
};

export default ReferrenceSelectBox;

我希望<SelectArrayInput>的输出带有已经选择的选项。

1 个答案:

答案 0 :(得分:0)

我无法使用react-admin使用代码沙箱,但是从documentation看来,它似乎是以Material-ui中的Select为基础。

在Material-UI中,您可以传递将要选择的值作为prop:value,它接受​​所需的ids的数组。

因此,在您的情况下,您无需创建selected属性,而是创建另一个数组来捕获selectedIds并将其作为value属性传递,并且应该可以工作。

const tec = [
    { name: "Apple", id: 1},
    { name: "Facebook", id: 2 },
    { name: "Netflix", id: 3 },
    { name: "Tesla", id: 4 },
    ];
const selectedTec = [1];
const ReferrenceSelectBox = ({ source, record = {} }) => <SelectArrayInput value={ selectedTec } choices={ tec } />;

ReferrenceSelectBox.propTypes = {
    label: PropTypes.string,
    record: PropTypes.object,
    source: PropTypes.string.isRequired,
};

export default ReferrenceSelectBox;