Я пытаюсь получить значение из onChange, используя setState
, но по какой-то причине, когда я пишу текст на input
, я получаю сообщение об ошибке, например Axis.map is not a function
Кроме того, я хотел бы удалить Axis
данные по отдельности из последнего, используя splice
или pop
, но всякий раз, когда я нажимаю кнопку удаления, Axis
данные исчезают, кроме первого.
Набор элементов
const SetElements = ({
...
}) => {
const [Axis, setAxis] = useState([]);
const AxisHandler = e => {
setAxis([
...Axis,
{
label: "",
data: "",
backgroundColor: "",
},
]);
};
const deleteAxis = () => {
setAxis(Axis.splice(-1, 1));
};
return (
<>
<button onClick={AxisHandler}>add Line</button>
{Axis.length !== 1 && (
<button onClick={deleteAxis}>delete Line</button>
)}
{Axis.map((element, index) => (
<>
<AppendingAxis
Axis={Axis}
setAxis={setAxis}
element={element}
index={index}
/>
</>
))}
</>
)
Добавление оси
const AppendingAxis = ({
index,
setAxis,
Axis,
}) => {
console.log(Axis);
return (
<AxisSetting>
<h4>{index + 2}Y Axis setting</h4>
<span>
<input
placeholder={index + 2 + "setting"}
type="textarea"
onChange={e => setAxis((Axis[index].label = e.target.value))}
/>
</span>
не могли бы вы поделиться своим кодом в песочнице кода ??
проверьте возврат соединения, в вашем коде соединение возвращает массив последнего элемента