J'utilisais AOR 1.2.2 pour le panneau des paramètres du site. partie Tricky est que ces paramètres peuvent avoir différents types: string, int, bool, tableau de chaînes, int etc j'ai réussi à le faire en vous connectant dossier du magasin et en utilisant ce code:L'entrée ne se répète pas à l'intérieur de SimpleForm
const SettingsEdit = (props) => {
return (
<Edit actions={<SettingsEditActions {...props} />} title=
{<SettingsTitle />} {...props}>
<SimpleForm toolbar={<EditToolbar />}>
<TextField source="description" />
<DisabledInput elStyle={{ width: '100%' }} label="Default
value" source="defaultValue" />
{renderCountryValue(props)}
</SimpleForm>
</Edit>
);
};
const renderCountryValue = (prop) => {
const record = prop.record;
if (record) {
if (record.multilang) {
// countryValue will be a dict with locale keys
// TODO Multilang fields temporary disabled in restClient
return null;
}
// countryValue will be single value or array
if (record.schema.type === 'array') {
// countryValue will be single array
if (record.schema.items.type === 'string') {
return <LongTextInput format={v => v.join()} parse={v => v.split(',')} label="Value" source="countryValue" />;
}
if (record.schema.items.type === 'integer') {
return <LongTextInput format={v => v.join()} parse={v => v.split(',')} validate={validateIntegerArray} label="Value" source="countryValue" />;
}
}
// countryValue will be single value
if (record.schema.type === 'string') {
return <TextInput label="Value" source="countryValue" />;
}
if (record.schema.type === 'integer') {
return <NumberInput label="Value" source="countryValue" />;
}
if (record.schema.type === 'boolean') {
return <BooleanInput label="Value" source="countryValue" />;
}
return <LongTextInput label="Value" source="countryValue" />;
}
return <TextInput label="Value" source="countryValue" />;
};
Il travaillait bien jusqu'à ce que j'ai essayé de mettre à jour AOR à 1.3.1 puis il s'est arrêté. Ce que j'ai remarqué est que dans le premier rendu il n'y a pas d'enregistrement donc il rend TextInput par défaut mais sur le second rendu quand il y a un enregistrement il ne rediffuse pas cette entrée dans un type correct comme NumberInput ou etc J'ai essayé de déboguer et programmer placer quand il devrait rendre d'autres entrées mais rien ne se passe à l'écran. Des idées ou des solutions de contournement?