Почему мой компонент не рендерится после его обновления? - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь изменить состояние моего массива объектов, оно меняет состояние, но мой компонент не выполняет повторную визуализацию. Почему это так?

useEffect(() => {
    if(data && data.rows) {
        data.rows.forEach(async (elem) => {
            const row = await axios.get(url);
            elem.members= row.data.length;
        })
    }
}, [data])

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

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

1. компонент на основе класса this.setState()

2.hooks setLen()

const [len, setLen] = React.useState(0);
useEffect(() => {
    if(data && data.rows) {
        data.rows.forEach(async (elem) => {
            const row = await axios.get(url);
            setLen(row.data.length);
        })
    }
}, [data])
0 голосов
/ 06 ноября 2019

Для повторного рендеринга компонента состояние должно быть обновлено. Вам нужно сделать setState для обновления вашего компонента. Также, если вы получаете обновленные значения из реквизита, вам следует рассмотреть возможность использования componentDidUpdate ловушки жизненного цикла реакции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...