Я пытаюсь отобразить элемент на основе тумблера. Если переключатель имеет значение false и вы нажмете кнопку, он отобразит один элемент. Если переключатель имеет значение true, он будет отображать другой. Я знаю, что я близко, но я не могу получить последнюю часть. Вот то, что у меня есть:
const HonestSlogan = (
<div>
<p>"Air Force: Come in, have a seat."</p>
<p>"Navy: 5,000 dudes surrounded by water."</p>
<p>"Army: A sh*tty job for anyone and everyone."</p>
<p>"Marine Corps: Marines for-f*ucking-ever."</p>
</div>
);
const Slogan = (
<div>
<p>"Air Force: Aim High, Fly-Fight-Win"</p>
<p>"Navy: Forged by the Sea"</p>
<p>"Army: Army Strong"</p>
<p>"Marine Corps: The Few, The Proud"</p>
</div>
);
function App() {
const [value, setValue] = useState(false);
const handleBtn = () => {
Toggle.isOn = value ? (
<div id="para">{HonestSlogan}</div>
) : (
<div id="para">{Slogan}</div>
);
};
return (
<div className="App">
<h1>Military Slogans</h1>
<Toggle
isOn={value ? console.log(HonestSlogan) : console.log(Slogan)}
handleToggle={() => setValue(!value)}
/>
<div>
<button onClick={handleBtn}>Check Slogan</button>
</div>
</div>
);
}
export default App;
Вот компонент Toggle:
const Toggle = ({ isOn, handleToggle }) => {
return (
<div className="toggle-title">
<div>Official Slogan</div>
<label className="switch">
<input type="checkbox" checked={isOn} onChange={handleToggle} />
<span className="slider round"></span>
</label>
<div>Honest Slogan</div>
</div>
);
};
export default Toggle;
Вот мой полный код для codeandbox: https://codesandbox.io/s/militaryslogans-2z9w8 Спасибо за помощь.