#reactjs #react-hooks #use-effect
#reactjs #реагирующие крючки #использовать-эффект
Вопрос:
У меня есть эффект использования, который я хочу запустить только один раз при загрузке компонента, за исключением того, что в этом случае он вообще не запускается, и я не уверен, почему. Вот код:
import React, {useContext, useEffect} from "react"
import { UserContext } from "../users/UserProvider"
export const ProfileInfo = (props) =>{
const {cbUser, getSingleCbUser} = useContext(UserContext)
useEffect(()=> {
getSingleCbUser(props.match.params.id)
},[])
return(
<>
<section className="info__container">
<div className="left__info">
<p>{cbUser.user.username}</p>
<p>{cbUser.user.first_name}</p>
<p>{cbUser.user.last_name}</p>
</div>
<div>
<p>{cbUser.user.date_joined}</p>
</div>
</section>
</>
)
}
Кажется, что эффект использования вообще не запускается. Когда я заменяю то, что внутри, console.log("test")
я не вижу журнала консоли в консоли браузера. Кажется, что эффект использования просто передается. Я использую эффект использования таким же образом в другом компоненте, и он работает нормально. Любая помощь приветствуется.
Комментарии:
1.
useEffect
срабатывает, когда загружается не страница, а визуализируется компонент.2. В массиве зависимостей «[ ]» эффекта использования вы можете проверить
getSingleCbUser
? От[ ]
до[getSingleCbUser]
3. @Magofoco Я пробовал это и, похоже, по какой-то причине все еще пропускает эффект использования. Я ставлю точку останова в строке useEffect в отладчике, и она попадает в эту первую строку
useEffect(()=> {
, но затем просто переходит к оператору return4. можете ли вы вставить свой код в codesandbox? чтобы я мог увидеть живую демонстрацию и исправить ошибку было бы легко