Как обновить массив в useState, используя его индекс в React Native - PullRequest
0 голосов
/ 19 апреля 2020

У меня проблемы при обновлении массива с помощью ловушки useState. Я хочу, чтобы у меня был массив, заполненный n количеством элементов, где n могло бы быть 1-10. и я хочу обновить значение элемента, используя его индекс №. но я не получаю никакой помощи. Вот коды, которые я хочу получить:

import React, {useState} from 'react';
import React, {View, Text} from 'react-native';

const myScreen = props => {
const [myCustomArray, setmyCustomArray] = useState(Array.(5).fill(0));

const onClickHandler = (n) => {
// update the element in array having the index no. n
setMyCustomArray([n] = 'something');
}

Но этот подход мне не помогает. У кого-нибудь есть лучший подход?

1 Ответ

1 голос
/ 19 апреля 2020

Вы должны распространить массив до того, как

const onClickHandler = (n) => {
    const arr = [...myCustomArray];
    arr[n] = 'something';
    setMyCustomArray(arr);
}

реагирует, проверяет ссылку на массив, если изменено, то выполнить повторное рендеринг, иначе нет.

...