Это предупреждение eslint
, которое вы получаете, если какая-либо зависимость в useEffect
не является частью массива зависимостей.
В вашем случае вы используете props.fetchTodos
внутри useEffect, и предупреждение eslint предлагает вам указать props
в качестве зависимости, чтобы при изменении реквизитов функция useEffect извлекала обновленные реквизиты из своего закрытия.
Однако, поскольку fetchTodos
не изменится в жизненном цикле вашего приложения, и вы захотите запустить эффект только после того, как сможете отключить правило для своего случая.
const ShowTodos = (props) =>{
const { fetchTodos } = props
useEffect(()=>{
fetchTodos()
// eslint-disable-next-line import/no-extraneous-dependencies
},[])
}
const mapStateToProps = (state)=>{
return {
todos:Object.values(state.todos),
currentUserId:state.authenticate.userId
}
}
export default connect(mapStateToProps,{fetchTodos})(ShowTodos)
Однако вы можете решить проблемубез отключения правила, например
const ShowTodos = (props) =>{
const { fetchTodos } = props
useEffect(()=>{
fetchTodos()
},[fetchTodos])
}
Однако я рекомендую вам знать, когда именно следует отключить правило или передать значения в массив зависимостей.