Here I use embed codepen library for react. When I click the buttons I want to change the active codepen component showing on the {activeCodePen}. But when I do console.log the activeCodePen I notice that it changes but rendered component on the screen does not change. How can I fix this?
I tried both setActiveCodePen(() => renderCodePen(1)) or setActiveCodePen(renderCodePen(1))
const PageNotFound: React.FC = () => {
function renderCodePen(index: number){
switch (index) {
case 1:
return <ReactCodepen user="MichaelKhalifar" hash="JjZYENK" height={700} loader={() => <div>Loading...</div>} themeId="31205" />
case 2:
return <ReactCodepen user="saifkeralite" hash="GRGyKEz" height={700} loader={() => <div>Loading...</div>} themeId="31205" />
case 3:
return <ReactCodepen user="saifkeralite" hash="yLBQaaY" height={700} loader={() => <div>Loading...</div>} themeId="31205" />
default:
return <ReactCodepen user="saifkeralite" hash="yLBQaaY" height={700} loader={() => <div>Loading...</div>} themeId="31205" />
}
}
const [activeCodePen, setActiveCodePen] = useState(renderCodePen(1));
return (
<div className={styles.mainContainer}>
{activeCodePen}
<button onClick={() => {setActiveCodePen(() => renderCodePen(1))}}>1</button>
<button onClick={() => {setActiveCodePen(() => renderCodePen(2))}}>2</button>
<button onClick={() => {setActiveCodePen(() => renderCodePen(3))}}>3</button>
</div>
);
};