Интеграция Intro.js с React Hooks - PullRequest
0 голосов
/ 08 октября 2019

Как я могу интегрировать intro.js с перехватчиками реагирования?

Единственные документированные примеры (даже при переполнении стека) относятся к методам componentDidMount и т. Д.

1 Ответ

0 голосов
/ 08 октября 2019

В вашем вопросе очень мало контекста, но вы наверняка могли бы.

К вашему сведению. Я не знаком с introJS или его API, поэтому составлю кое-что:)

Например, если вам нужен эквивалент запуска компонента componentDidMount, вы должны сделать:

useEffect(
  () => {
    // Get intro JS started
    introJs.init();
  },
  [] // Notice the empty array. This will only run when component mounts.
)

Однако, если у вас есть что-то более динамичное, вам нужно сообщить intro.js об обновлениях DOM, выполняемых React. Простейшим примером будет воссоздание introJS при каждом обновлении.

useEffect(
  () => {
    // Get intro JS started
    introJs.init();
    // Destroy intro JS when component changes happen
    return () => introJs.destroy()
  }
  // Notice no dependencies array. This will run on every update.
)

Это будет по существу воссоздавать introJS при каждом обновлении компонента, что может быть, а может и не быть тем, что вы хотите / нужно.

Вы можете использовать useEffect с определенными зависимостями, для которых может потребоваться обновление introJS, вы можете использовать refs для получения последних элементов и отправки их в ваш introJS, вы можете использовать useState для отслеживанияномера шагов introJS, чтобы вы могли запустить его с того места, где остановился ваш пользователь, и т. д.

...