reactjs - 使用 2 张不同的幻灯片时,幻灯片过渡组件不起作用
问题描述
当我只使用一张幻灯片时,无论是在screen 1
文本上还是在 上screen 2
,它都可以正常工作。
我的问题是为什么当我使用两张不同的幻灯片时它不起作用?
我想使用两张不同的幻灯片,这样如果用户来回切换,它必须显示一个过渡。
我试过这个:
export default function App() {
const [step, setStep] = useState(1);
const [slider, setSlider] = useState(false);
const handlenext = () => {
setStep(2);
setSlider(true);
};
const handleprev = () => {
setStep(1);
setSlider(true);
};
return (
<div className="App">
{step === 1 ? (
<Slide direction="up" in={slider} mountOnEnter unmountOnExit>
<h1>this is screen 1</h1>
</Slide>
) : (
<Slide direction="up" in={slider} mountOnEnter unmountOnExit>
<h1> screen 2</h1>
</Slider>
)}
<Button onClick={() => handlenext()}>Next</Button>
<Button onClick={() => handleprev()}>Previous</Button>
</div>
);
}
还有这个:-
export default function App() {
const [step, setStep] = useState(1);
};
return (
<div className="App">
{step === 1 ? (
<Slide direction="up" in={true} mountOnEnter unmountOnExit>
<h1>this is screen 1</h1>
</Slide>
) : (
<h1> screen 2</h1>
)}
<Button onClick={() => setStep(2)}>Next</Button>
<Button onClick={() => setStep(1)}>Previous</Button>
</div>
);
}
请检查以下链接上的复制。
https://codesandbox.io/s/keen-shockley-oprtk?file=/src/App.js
解决方案
过渡在条件渲染中不起作用。
因此,如果您将隐藏和显示功能留给组件本身,那么过渡将起作用。
只需移除条件渲染并将状态值赋予in
Slide 组件的 prop。
<Slide direction="up" in={step === 1} mountOnEnter unmountOnExit>
<h1>this is screen 1</h1>
</Slide>
<Slide direction="up" in={step === 2} mountOnEnter unmountOnExit>
<h1> screen 2</h1>
</Slide>
推荐阅读
- docker - 获取 docker 错误,守护进程在 docker pull 上缺少签名密钥
- javafx - 如何旋转折线图系列
- android - 空白 Android 应用程序包安装错误
- python - 合并两个具有特定术语的字典数组
- python-3.x - PySpark Schema 问题加载预测
- c# - 提高子级的添加或删除操作以在父 StackPanel 中添加或删除元素
- puppet - Puppet:将整数更新为文件内容 - 类内容中的值为 0 的 Munging 失败
- android - Facing error in converting byte array to vector of float in JNI
- java - StackOverflowError: null in both side relationship
- python - 如何在没有for循环的字典中搜索张量的id