В вашем вопросе очень мало контекста, но вы наверняка могли бы.
К вашему сведению. Я не знаком с 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, чтобы вы могли запустить его с того места, где остановился ваш пользователь, и т. д.