Reputation: 145
I am not well aware with reactjs. I am converting a script tag in reactjs to use inside the function components. Below is the script tag code
<script>
function videoslider(links){
document.querySelector(".slider").src = links;
}
</script>
when I tried to use this in function component as given below
videoslider = (links) => {
document.querySelector(".slider").src = links;
}
or
const videoslider = links => {
document.querySelector(".slider").src = links;
}
return (
<div class="container">
<video src="1.mp4" class="slider" autoplay loop muted controls></video>
<ul>
<li onclick="videoslider('1.mp4')"><video src="1.mp4"></video></li>
<li onclick="videoslider('2.mp4')"><video src="2.mp4"></video></li>
<li onclick="videoslider('3.mp4')"><video src="3.mp4"></video></li>
<li onclick="videoslider('4.mp4')"><video src="4.mp4"></video></li>
<li onclick="videoslider('5.mp4')"><video src="5.mp4"></video></li>
</ul>
</div>
)
then it's gave me the error that videoslider is not declared. Where I did wrong. Any suggestion much appreciate. thanks
Upvotes: 0
Views: 181
Reputation: 1643
You can use useState
hook to solve this problem. In your case for example:
import { useState } from "react";
import "./styles.css";
export default function App() {
const [sliderSrc , setSliderSrc] = useState("");
const videoslider = (links) => {
setSliderSrc(links);
};
return (
<div class="container">
<video
src="1.mp4"
className="slider"
src={sliderSrc}
autoplay
loop
muted
controls
></video>
<ul>
<li onClick={()=>videoslider('1.mp4')}>
<video src="1.mp4"></video>
</li>
<li onClick={()=>videoslider('2.mp4')}>
<video src="2.mp4"></video>
</li>
<li onClick={()=>videoslider('3.mp4')}>
<video src="3.mp4"></video>
</li>
<li onClick={()=>videoslider('4.mp4')}>
<video src="4.mp4"></video>
</li>
<li onClick={()=>videoslider('5.mp4')}>
<video src="5.mp4"></video>
</li>
</ul>
</div>
);
}
Upvotes: 1