Функция запуска при запуске анимации движения фрейма

#javascript #reactjs #animation #framer-motion

Вопрос:

У меня есть контейнер с анимацией монтирования и when установлен на beforeChildren . У ребенка также есть анимация монтирования.

Таким образом, анимация монтирования ребенка начинает воспроизводиться после завершения родительской анимации. Однако дочерний компонент монтируется в дереве компонентов одновременно с родительским.

Это проблема, потому что я хочу запустить некоторый код точно в тот момент, когда начнется анимация ребенка (в данном случае воспроизведение звука).

Пример кода:

 // parent.js
import { motion } from 'framer-motion';
import Child from './child';

export default function Parent() {
  const variants = {
    initial: {
      opacity: 0,
    },
    animate: {
      opacity: 1,
      transition: {
        duration: 1,
        when: 'beforeChildren'
      }
    }
  };

  return (
    <motion.div
      variants={variants}
      initial="initial"
      animate="animate"
    >
      <h1>Parent displayed!</h1>
      <Child/>
    </motion.div>
  );
}
 
 // child.js
import { motion } from 'framer-motion';

export default function Child() {
  const variants = {
    initial: {
      opacity: 0,
    },
    animate: {
      opacity: 1,
      transition: {
        duration: 1,
      }
    }
  };

  return (
    <motion.div
      variants={variants}
    >
      <h1>Child displayed!</h1>
    </motion.div>
  );
}
 

Помимо буквального написания моей собственной библиотеки оркестровки, как мне запустить некоторый код в момент запуска анимации ребенка?