
useRef๋ฅผ ํตํด input์ ์ ์ดํ๋ ค๊ณ ํฉ๋๋ค!
๊ทธ๋ฐ๋ฐ, ์ด๋ฐ input์ด 5๊ฐ๋ผ๋ฉด? useRef์ด 5๊ฐ ํ์ํ๊ฒ ์ฃ ! 5๊ฐ ์ ๋๋.. ํ๋ํ๋ ์ ์ธํด์ค ์ ์๊ฒ ์ง๋ง... ๋นํจ์จ์ ์ธ๋ฐ๋ค๊ฐ
์ฌ์ง์ด๋ input์ด 1000๊ฐ๋ผ๋ฉด?!? ํ๋ํ๋ ์ ์ธํด์ค ์ ์๊ฒ ์ฃ ..!!๐ค๐ค๐ค
ํจ์จ์ ์ผ๋ก ๊ตฌํํด๋ด ์๋ค!!
๊ฒฐ๋ก ์ ์ผ๋ก ์๋์ ๊ฐ์ด ์ ๋ฆฌํ ์ ์์ต๋๋ค.
Ref๋ฅผ ๋ฐฐ์ด๋ก ๊ด๋ฆฌํ๊ณ ,
(item, index) =>
(
<input type="file"
ref={(element) => { Ref๋ฐฐ์ด.current[index] = element; }}
onChange={(e) => Ref์ด๋ฒคํธํจ์(e, index)} />
)
00. ๋ฌธ์ ..
import * as React from "react";
export default function App() {
/** ํ์ผ์ด ์ถ๊ฐ๋ input์ ref */
const fileInputRef01 = React.useRef();
const fileInputRef02 = React.useRef();
const fileInputRef03 = React.useRef();
const fileInputRef04 = React.useRef();
const fileInputRef05 = React.useRef();
return (
<div>
<input type="file" ref={fileInputRef01} />
<input type="file" ref={fileInputRef02} />
<input type="file" ref={fileInputRef03} />
<input type="file" ref={fileInputRef04} />
<input type="file" ref={fileInputRef05} />
</div>
);
}
์... ์... ์ด๊ฑด ์๋ ๊ฒ ๊ฐ์ต๋๋ค...
01. ํด๊ฒฐํ๊ธฐ
import * as React from "react";
export default function App() {
/** ํ์ผ์ด ์ถ๊ฐ๋ input์ ref๋ฅผ ๋ฐฐ์ด์ ๋ด์์ ๊ด๋ฆฌํ๊ธฐ */
const imageInputRef = React.useRef([]);
/** ex. ์ปดํฌ๋ํธ ๋ฆฌ์คํธ */
const fileComponentList = [1, 2, 3, 4, 5];
/** ๊ฐ ํ์ผ ์ ํ ๋ฒํผ ๋๋ ์ ๋ ref์์ ์ผ์ด๋๋ ์ผ */
function onAddFileChange(event, index) {
event.preventDefault();
// ํ์ผ์ด ์๋ ๊ฒฝ์ฐ
if (event.target.files) {
console.log(event.target.files[0]); // ํด๋น ํ์ผ ์ ๊ทผ
}
}
return (
<div>
{fileComponentList.map((item, index) => (
<input
type="file"
ref={(element) => {
imageInputRef.current[index] = element;
}}
onChange={(e) => onAddFileChange(e, index)}
/>
))}
</div>
);
}
โจโจโจ