, пожалуйста, взгляните на этот код ниже
в основном то, что происходит, мое действие отправляется здесь:
useEffect(() => {
fetchData()
setLoaded(true)
}, [])
но по какой-то причине это бесконечный цикл, и мое действие будет отправляться непрерывно
export const fetchData = () => ({ type: 'GET_USER_DATA' })
, и это вызывает мои epi c
const getUserData = (action$, state$) =>
action$.pipe(
ofType('GET_USER_DATA'),
mergeMap(
(action) =>
ajax
.getJSON(
`myurlishere`,
)
.pipe(map((response) => fetchUserFulfilled(response))),
)
)
, которые запускают это:
const fetchUserFulfilled = (payload) => ({ type: 'GET_DATA_SUCCESS', data: payload })
этот код все работает, но постоянно вызывая его в бесконечном l oop
, однако, если я перенесу код из useEffect
в вызов кнопки, например:
<button onClick={fetchData}>fetch</button>
, он вызовет его только один раз, то есть что я хочу
, но мне нужно, чтобы данные вызывались onmount. Итак, как мне это исправить?
обратите внимание, я пробовал добавлять разные вещи ко второму аргументу useEffect, но это не имело эффекта
useEffect(() => {
fetchData()
setLoaded(true)
}, [user.id])