์ฒดํฌ๋ฐ์ค์ ์๋ ๊ฐ์ ํํฐํ๋ ๊ฐ๋จํ ์์
import React, { useState } from 'react';
import "./App.css"
const monster = [
{ id: 1, type: "pokemon", name: 'ํผ์นด์ธ' },
{ id: 2, type: "pokemon", name: '๊ผฌ๋ถ๊ธฐ' },
{ id: 3, type: "pokemon", name: '์น์ฝ๋ฆฌํ' },
{ id: 4, type: "pokemon", name: 'ํญ๋๋ฆฌ' },
{ id: 5, type: "digimon", name: 'ํ๋ฅ๋ชฌ' },
{ id: 6, type: "digimon", name: 'ํ๋ชฌ' },
{ id: 7, type: "digimon", name: '๋ฆด๋ฆฌ๋ชฌ' },
];
function App() {
const [isChecked, setIsChecked] = useState(false)
const filteredMonster = monster.filter(item => item.type !== "digimon");
const handleCheckboxOptionChange = (e) => {
setIsChecked(e.target.checked);
};
return (
<div className="centered">
{isChecked ? (
<select>
{monster?.map((el) => {
return (
<option key={el.id} value={el.id}>
{el.name}
</option>
);
})}
</select>
) : (
<select>
{filteredMonster?.map((el) => {
return (
<option key={el.id} value={el.id}>
{el.name}
</option>
);
})}
</select>
)}
<label>
<input type="checkbox" checked={isChecked} onChange={handleCheckboxOptionChange} />
๋์ง๋ชฌ ํฌํจ
</label>
</div>
);
}
export default App;
๊ฐ์ํ๊ฒ ์ฎ๊ฒจ ์ ๋ ์์ค์, ์กฐ๊ธ ๋ ๊ด์ฐฎ๊ฒ ์์ ํ ๋ฐฉ๋ฒ์ ์ฐพ์๋ค..
์ค์ ํ๋ก์ ํธ์ ์ด๋ฐ์์ผ๋ก ํ๋๋ฐ ์ง๊ธ ์ฐพ์ ๊น์ ์์ ํด์ผ๊ณ๋น
import React, { useState } from 'react';
import './App.css';
const monsters = [
{ id: 1, type: 'pokemon', name: 'ํผ์นด์ธ' },
{ id: 2, type: 'pokemon', name: '๊ผฌ๋ถ๊ธฐ' },
{ id: 3, type: 'pokemon', name: '์น์ฝ๋ฆฌํ' },
{ id: 4, type: 'pokemon', name: 'ํญ๋๋ฆฌ' },
{ id: 5, type: 'digimon', name: 'ํ๋ฅ๋ชฌ' },
{ id: 6, type: 'digimon', name: 'ํ๋ชฌ' },
{ id: 7, type: 'digimon', name: '๋ฆด๋ฆฌ๋ชฌ' },
];
function App() {
const [isChecked, setIsChecked] = useState(false);
const handleCheckboxOptionChange = (e) => {
setIsChecked(e.target.checked);
};
const monsterList = isChecked ? monsters : monsters.filter((monster) => monster.type !== 'digimon');
return (
<div className="centered">
<select>
{monsterList.map((monster) => (
<option key={monster.id} value={monster.id}>
{monster.name}
</option>
))}
</select>
<label>
<input type="checkbox" checked={isChecked} onChange={handleCheckboxOptionChange} />
๋์ง๋ชฌ ํฌํจ
</label>
</div>
);
}
export default App;
์ฒจ๋ถํฐ monsterList๋ฅผ ์ ์ํ ๋, isChecked ์ํ๋ฅผ ๋ฐ์์ฃผ๋ฉด ๋์๋๋ฐ,
์ต์ ๋ฆฌ์คํธ๋ฅผ ํํฐํด์ผ๋๋ค๋ ์๊ฐ๋ง ํด๊ฐ์ง๊ณ ๊ทธ๋ฌ๋๋ณด๋ค.!
'Coding Diary' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Floating Labels Chakra UI๋ก ์ ์ฉํ๊ธฐ (feat. Next 14) (1) | 2024.03.11 |
---|---|
[Next] SNS๋ณ๋ก ๋์ ๋ผ์ฐํ (Dynamic Routes) ์ง์ ํ๊ธฐ (1) | 2024.03.05 |
[JS, React] ํ์ด์ง ์ฒ๋ฆฌ ์ ์ธ๋ฑ์ค๋ฅผ ์ญ์์ผ๋ก ์ฒ๋ฆฌ (2) | 2023.11.27 |
Ag-grid์ ์ซ์๋ง ์ ๋ ฅ๋๊ฒ ํ๊ธฐ : agNumberColumnFilter (0) | 2023.10.02 |
์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก์ ํธ๋ฅผ ํ์ ์คํฌ๋ฆฝํธ๋ก ๋ณํ (4) | 2023.06.04 |