Добрый день.
Мастерю ToDo App. По клику "Добавить заметку" диспатчу соответственный экшн, тут все хорошо.
Список готовых заметок хочу хранить в массиве, и отрисовывать их через .map(), а чтобы после каждого добавления заметки и перерисовки массив заметок не сбрасывался, записываю его в state.
Но, реакт выдает ошибку:
Too many re-renders. React limits the number of renders to prevent an infinite loop.
Я попробовал в state записать просто любое число, но ошибка не исчезла. Убираю изменение state - ошибка пропадает. Добавляю с любым значением - снова бесконечный ре-рендеринг.
Код компонента выглядит так:
import React, {useState} from 'react'
import './Notes.css'
import { connect } from 'react-redux';
const Notes = (props)=>{
let [notes, setNotes] = useState();
let key = 0;
setNotes(123123)
console.log(props.notes)
/*for(let i = 0; i<16; i++){
notes.push(<div key={++key} className="item">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div>)
}*/
return (
<div className="masonry">
{ console.log(props.notes)} {
/*props.notes.map(
(e)=>{
return <div key={++key} className="item">{e[0]} - {e[1]}</div>
}
)*/
}
</div>
)
}
const mapStateToProps = (state)=>{
return {
notes: state
}
}
export default connect(mapStateToProps)(Notes)
P.S. Знаю, что выполнять логику не в редьюсерах, ни в компонентах не стоит, буду чуть позже использовать redux-thunk, пока так