Cześć. Napisałem sobie kod, który powinien dodawać dodawać elementy do listy(z biblioteki react-beautiful-dnd), jednakże tak się nie dzieje, nie wiem dlaczego. State z elementami listy jest aktualizowany, dodanie elementu rzeczywiście wykonuje się o 1 raz więcej, a nawet w "zbadaj" widać, że element się tam znajduje... jednak na ekranie go nie widać. Lista znajduje się w rodzicu, który ma dziecko, w którym znajduje się dziecko w którym state rodzica jest aktualizowany. Służy do tego ta funkcja:
addSubject = (input) => {
input.preventDefault()
let ingredients = input.target[2].value.split(':')
let timeInMinutes = parseInt(ingredients[0]) * 60 + parseInt(ingredients[1])
console.log()
const subjectProps = {
subjectName: input.target[0].value,
proffesor: input.target[1].value,
subjectLength: timeInMinutes,
ID: this.props.planRef.indexCounting
}
axios.post('/addSubject', subjectProps, {withCredentials: true}).then(result => {
this.props.planRef.setState({subjects: [...this.props.subjects, subjectProps]}, () => {
this.props.planRef.indexCounting++;
})
}).then(() => {
})
}
A kod renderu odpowiadający z wyrysowanie tego, widzimy tutaj:
<Droppable droppableId="subjects">
{(provided) => (
<div className="subjects" id="subjectsMenuList" {...provided.droppableProps} ref={provided.innerRef}>
{
this.props.subjects.map(({ID, name}, index) => {
return (
<Draggable key={`${ID}`} draggableId={`${ID}`} index={index}>
{
(provided) => (
<div className="deansSubject" ref={provided.innerRef} {...provided.draggableProps} {...provided.dragHandleProps}>
<div>
{
name
}
</div>
</div>
)}
</Draggable>
)
})
}
{provided.placeholder}
</div>
)}
</Droppable>