Из-за возвращаемого значения пользовательских хуков функция, использующая useCallback, генерируется неоднократно - PullRequest
0 голосов
/ 06 апреля 2020
//useAppState() from AppContext.tsx
const { appState, actions } = useAppState() 

const onChangeFileInput = useCallback((event) => {
    const files = event.target.files
    for (let i in files) {
      if (files[i] instanceof window.Blob) {
        actions.loadDicom(files[i])
      }
    }

    if (uploadInput && uploadInput.current) {
      uploadInput.current.value = ''
    }
  }, [actions.loadDicom])

//////////////////// AppContext.tsx ////////////////

const value: AppContextState = {
    appState: {
     state1,
     state2,
     ...
    },
    actions: actions
  }

return <AppContext.Provider value={value}>{children}</AppContext.Provider>

Функция onCahgeFileInput генерируется больше, чем нужно
Я думаю, что useAppState () возвращает действия, компоненты которых считали измененными (верно?)

Я хочу сделать вид блокировки действий .. действие включает в себя несколько функций, которые устанавливают appStates.

Есть ли хорошее решение? я должен изменить константу 'value' в AppContext на что-то, используя useRef ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...