Permettre de gérer les options proposées dans un DAD #19
|
@ -51,23 +51,23 @@ export const OptionsSection: FunctionComponent<OptionsSectionProps> = ({ dsf, up
|
||||||
}
|
}
|
||||||
|
|
||||||
const onAddOptionClick = (evt: MouseEvent) => {
|
const onAddOptionClick = (evt: MouseEvent) => {
|
||||||
var options = JSON.parse(JSON.stringify(state.section.options))
|
const options = JSON.parse(JSON.stringify(state.section.options))
|
||||||
|
|||||||
var option = newOption("Décision", "", "");
|
const option = newOption("Décision", "", "");
|
||||||
wpetit
commented
Si il n'y aura pas d'assignation de nouvelle valeur à la variable, préférer Si il n'y aura pas d'assignation de nouvelle valeur à la variable, préférer `const` à `var` pour identifier assez vite les erreurs liées à l'écrasement de valeurs "constantes".
|
|||||||
options.push(option);
|
options.push(option);
|
||||||
setState(state => ({ ...state, changed: true, section: { ...state.section, options }}));
|
setState(state => ({ ...state, changed: true, section: { ...state.section, options }}));
|
||||||
};
|
};
|
||||||
|
|
||||||
const onOptionChange = (id: string, attrName: string, evt: ChangeEvent<HTMLInputElement>) => {
|
const onOptionChange = (id: number, attrName: string, evt: ChangeEvent<HTMLInputElement>) => {
|
||||||
const target = evt.currentTarget;
|
const target = evt.currentTarget;
|
||||||
const value = target.hasOwnProperty('checked') ? target.checked : target.value;
|
const value = target.hasOwnProperty('checked') ? target.checked : target.value;
|
||||||
var options = JSON.parse(JSON.stringify(state.section.options))
|
const options = JSON.parse(JSON.stringify(state.section.options))
|
||||||
wpetit
commented
Idem qu'un peu plus haut. Idem qu'un peu plus haut.
|
|||||||
options[id][attrName] = value;
|
options[id][attrName] = value;
|
||||||
setState(state => ({ ...state, changed: true, section: { ...state.section, options }}));
|
setState(state => ({ ...state, changed: true, section: { ...state.section, options }}));
|
||||||
};
|
};
|
||||||
|
|
||||||
const onRemoveOptionClick = (id: string, evt: MouseEvent) => {
|
const onRemoveOptionClick = (id: number, evt: MouseEvent) => {
|
||||||
if(confirm('Voulez-vous supprimer cette option ?')){
|
if(confirm('Voulez-vous supprimer cette option ?')){
|
||||||
var options = JSON.parse(JSON.stringify(state.section.options))
|
const options = JSON.parse(JSON.stringify(state.section.options))
|
||||||
wpetit
commented
Idem, Idem, `const` semble préférable à `var` ici.
|
|||||||
options.splice(id, 1);
|
options.splice(id, 1);
|
||||||
setState(state => ({ ...state, changed: true, section: { ...state.section, options }}));
|
setState(state => ({ ...state, changed: true, section: { ...state.section, options }}));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
JSON.parse(JSON.stringify(state.section.options))
est utilisé ici pour faire une copie ?Pourquoi ne pas plutôt faire
const options = [ ...state.section.options ];
? Cette méthode est plus performante qu'une sérialisation/dé-sérialisation JSON du tableau.Malheureusement la méthode de copie que tu cites ne lève pas l'interdiction d'écrire dans options, je n'ai pas trouvé d'autre méthode que JSON.parse(JSON.stringify(state.section.options)) pour en faire une copie modifiable.