Я пытаюсь понять React Hooks.То, что я хочу, это получить данные внутри функционального компонента путем вызова редукционного действия с хуками useEffect.Я знаю, что могу передавать реквизиты в состояние, подобное
const [todoList] = useState(props.todoList)
Но какова лучшая практика для извлечения данных с помощью существующих действий с избыточностью?
В компоненте класса React я вызываю этот метод для извлечения данныхв componentDidMount () и Everythink работает.
import React, { useEffect } from 'react'
import { connect } from 'react-redux'
import { ITodo } from './types'
import { getTodos } from '../actions/todoActions'
interface IProps {
todoList: Array<ITodo>
getTodos: typeof getTodos
}
const Todos = (props: IProps) => {
useEffect(() => {
props.getTodos()
}, [props.todoList])
return (
<div>
{props.todoList.map((_) => (<div key={_.Id}>{_.Name}</div>))}
</div>
)
}
const mapStateToProps = (state) => ({
todoList: state.todo.todoList
})
const mapDispatchToProps = {
getTodos
}
export default connect(mapStateToProps, mapDispatchToProps)(ProdRoute)
Я ожидал получить список задач с props и props.getTodos () должен вызываться один раз, как в методе componentDidMount ().Но на самом деле я получаю данные, и getTodos () вызываются снова и снова, но должны вызываться один раз при монтировании компонента