функция handleFeetAndInch обновляет состояние, используя индекс, используя array.map и передавая функцию, которая обновляет состояние, но на отображаемое состояние ссылаются все вызываемые вызовы функций, поэтому другие индексы карты не получают обновленные значения состояния Существуют ли какие-либо практики в отношении того или иного способа преобразования значения, основанного на случаях, когда объект измерения имеет следующие свойства: состояние = {измерения: [{имя: '', значение: '', al go: ''} ...]
handleFeetandInch = (key, nameValue, value) => {
let realFeet = (value * 0.3937) / 12;
let feet = Math.floor(realFeet);
let inches = Math.round((realFeet - feet) * 12);
let updatedValue = `${feet}'${inches}"`;
const newMeasurement = [...this.state.measurements];
newMeasurement[key] = {
name: nameValue,
value: updatedValue
};
this.setState({
measurements: newMeasurement
});
};
handleUnitChange = () => {
if (this.state.isCm) {
// reset State
} else {
this.state.measurements.map((measurement, key) =>
measurement.algo === 1
? this.handleFeetandInch(key, measurement.name, measurement.value)
: this.handleInches(key, measurement.name, measurement.value)
);
this.setState(prevState => ({
isCm: !prevState.isCm
}));
}
};