
π― Reactμ props κ°λ μ λν΄ λ°°μ°κ³ , Modals μΈν°νμ΄μ€λ₯Ό μμ±ν©λλ€.
propsλ "properties"μ μ€μλ§λ‘ 리μ‘νΈ μ»΄ν¬λνΈμμ μΈλΆμμ κ°μ μ λ¬ν μ μκ² ν΄μ£Όλ κ°μ²΄μ
λλ€.
μ»΄ν¬λνΈλ ν¨μλΌμ propsλ ν¨μμ λ§€κ°λ³μμ²λΌ μ λ¬λ©λλ€.
μ»΄ν¬λνΈ λ΄λΆμμλ props.μ΄λ¦μΌλ‘ μ κ·Όνκ±°λ, ꡬ쑰 λΆν΄ ν λΉ{ μ΄λ¦ }μΌλ‘ κΊΌλ΄ μ¬μ©ν©λλ€.
import React from 'react';
interface MyProps {
weather: string;
children: React.ReactNode;
}
const MyWeather: React.FC<MyProps> = ({ weather, children }) => {
return (
<div>
<p>{children}</p>
μ€λμ λ μ¨λ {weather}μ
λλ€.
</div>
);
};
export default MyWeather;
import MyWeather from './MyWeather';
function App() {
return (
<div className='container'>
<MyWeather weather='λ§μ'>μΌκΈ° μ보</MyWeather>
</div>
);
}
export default App;
propsλ <Component something="κ°" /> β Component({ something: "κ°" }) μ ννλ‘ μ ν΄μ§λλ€.
children μ <Component> μ»΄ν¬λνΈ νκ·Έ μ¬μ΄μ μμ±λ λ΄μ©μ λ§ν©λλ€.
childrenμ ν΄λΉλ©λλ€.Modalμ νλ©΄ μμ λ¨λ νμ
μ°½ κ°μ UI μμμ
λλ€.
import React from 'react';
import { Modal } from 'react-bootstrap';
type Todo = {
id: number;
text: string;
isChecked: boolean;
};
type TodoModalProps = {
show: boolean;
todo: Todo | null;
handleClose: () => void;
};
const TodoModal: React.FC<TodoModalProps> = ({ show, todo, handleClose }) => {
return (
<div>
<Modal show={show} onHide={handleClose} centered>
<Modal.Header closeButton>
<Modal.Title>Todo μμΈ μ 보</Modal.Title>
</Modal.Header>
<Modal.Body>{todo?.text}</Modal.Body>
</Modal>
</div>
);
};
export default TodoModal;
TodoModalProps : λͺ¨λ¬ μ»΄ν¬λνΈμ propsμ νμ
μ μ μν©λλ€.
show : λͺ¨λ¬ νμ μ¬λΆ
todo : μ νλ todo
handleClose : λ«κΈ° λ²νΌ ν΄λ¦ μ μ€νλλ ν¨μ
<Modal></Modal> : react-bootstrapμ νμ©νμ¬ Modal μ»΄ν¬λνΈλ₯Ό ꡬμ±ν©λλ€.
?. μ νμ©νμ¬ μ νλ todoκ° μμ΄λ μλλκ² ν©λλ€.π€
trueλfalseκ°λ§μ μ λ¬ν΄λ μλλλ μ΄μ λ λκΉ?
react-bootstrapμModalμ»΄ν¬λνΈλ λ΄λΆμ μΌλ‘showλΌλpropsλ₯Ό κΈ°μ€μΌλ‘ λͺ¨λ¬μ 보μ¬μ€μ§ λ§μ§λ₯Ό κ²°μ νκΈ° λλ¬Έμ λλ€.μ¦, λ΄κ° λ°λ‘ ꡬννμ§ μμλ,
react-bootstrapμ΄showκ°μ κΈ°μ€μΌλ‘ λ€ μ²λ¦¬ν΄μ£Όμ΄ κ°λ§ μ λ¬ν΄λ μλν©λλ€.
μ§μ νμ μ μ€μ ν΄μ λ£λ κ²μ΄ μ΅μμΉ μμμ μ μ°μ΅ν΄μΌ ν κ² κ°λ€.