1

在我的react应用程序中,我试图react-spring在更改时使用淡入图像src。我在/img/命名的目录中有多个图像,以匹配activeIndex我要显示的当前图像。当前使用下面的代码,淡入效果仅应用于第一张图像。我究竟做错了什么?

import React from 'react';
import { Spring } from 'react-spring/renderprops';

export default function MyComponent(props) {

    const {
        activeIndex
    } = props;

    return (
        <div>
            <Image activeIndex={activeIndex}  />
        </div>
    )
}

function Image(props) {

    const {
        activeIndex
    } = props;

    return (
        <Spring
            from={{opacity: 0}}
            to={{opacity: 1}}
        >
            { props => (
                <div style={props}>
                    <div>
                        <img src={ `/img/${activeIndex}/01.jpg` } alt="" />
                    </div>
                </div>
            )}
        </Spring>
    )
}
4

1 回答 1

2

如果您只想要淡入效果,请确保每个图像都有不同的键。在这种情况下,react 将重复初始效果。

return (
    <div>
        <Image key={activeIndex} activeIndex={activeIndex}  />
    </div>
)

如果你也想要淡出效果。我会尝试使用 Transition 组件而不是 Spring 组件。

于 2019-05-03T14:57:07.447 回答