2

我目前正在使用 React-Admin,并且创建了一个自定义字段,其中包含以下代码:

import React from 'react';
import PropTypes from 'prop-types';

const PriceField = ({ source, record }) =>
    <div>
        <div hidden>
            {window.price = record[source]
                            .replace('[', '')
                            .replace(')', '')
                            .split(',')}
        </div>
        <div>
            Entre {window.price[0]}€ et {window.price[1]}€
        </div>
    </div>

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

export default PriceField;

在这里调用:

<List {...props} title="Fiches Techniques" perPage={10}>
    <Datagrid>
        <TextField label="Marque" source="marque"/>
        <ModelField label="Modele" source="modele"/>
        <TextField label="Garage" source="garage"/>
        <TextField label="Année véhicule" source="annevehicule"/>
        <PriceField source="prix"/>
        <ShowButton/>
    </Datagrid>
</List>

当我第一次在这个页面上时,一切都很好,一切都在显示,但是当我进入其他页面时,我又回到了它。

我有错误:记录 [来源] 未定义

如果有人遇到过这个问题,谢谢!

4

1 回答 1

1

我解决了这个问题,我第一次在页面上看到记录是一个对象,但第二次,它变成了一个包含对象的数组。

所以我做了这个函数来解决这个问题:

function isRecord(record) {
    if (record[0] !== undefined)
        return (record[0])
    if (record !== undefined)
        return (record)
}

我希望它可以帮助

于 2018-07-11T12:25:28.123 回答