я пытаюсь создать анимацию при монтировании/размонтировании компонента с помощью React-spring:
import { Transition, animated } from 'react-spring'
...
export class CompName extends PureComponent<CompNamePropsType> {
static defaultProps = {
isExpanded: false,
}
render() {
const {
isExpanded,
...props
} = this.props
return (
<section className={styles.block} {...props}>
<Transition
from={{ opacity: 0 }}
enter={{ opacity: 1 }}
leave={{ opacity: 0 }}>
{isExpanded && (style => (
<animated.div style={{ ...style, background: "orange" }}>
<AnotherComp />
</animated.div>
))}
</Transition>
</section>
)
}
}
Но это просто не работает, и я получил ошибку children is not a function
. Что я сделал не так, и как я могу создать анимацию при монтировании/размонтировании компонента с помощью оболочки react-spring?
isExpanded
является ложным, он возвращается как реквизитchildren
компонентуTransition
, который, кажется, ожидает реквизита рендеринга, который вы правильно возвращаете в случае, когдаisExpanded
является правдивым. Вы можете реорганизовать это, используя тернарный оператор и возвращая какую-то функцию noop, когдаisExpanded
ложно. - person adz5A   schedule 09.11.2018children
в вашем фрагменте неверна. Это функция, которая возвращает функцию:item => props => reactElement
. См. react-spring.surge.sh/transition . В вашем примере отсутствуют реквизитыitems
и правильная подпись для реквизитовchildren
. - person adz5A   schedule 09.11.2018