const IterSample = () => {
return(
<ul>
<li>...</li>
...
</ul>
);
arr.map(callback, [thisArg])
const name = [1,2,3,4,5]
const result = name.map(num=>num*num);
const IterSample = () => {
const name = [1,2,3,4,5]
const result = name.map(name=><li>{name}</li>);
return(
<ul>
{result}
</ul>
);
const result = name.map((name,index)=><li key={index}>{name}</li>);
import React, { useState } from "react";
const IterSample = () => {
const [names, setNames] = useState([
{ id: 1, text: "a" },
{ id: 2, text: "b" },
{ id: 3, text: "c" }
]);
const [inputText, setInputText] = useState("");
const [nextId, setNextId] = useState(5);
const result = names.map((name) => <li key={name.id}>{name.text}</li>);
const onChange = (e) => setInputText(e.target.value);
return (
<>
<ul>{result}</ul>
<input onChange={onChange} value={inputText} />
<button>click</button>
</>
);
};
export default IterSample;
useState : []형태를 반환하기 때문에 객체가 아닌 배열로 만들어서 받아줘야함.
import React, { useState } from "react";
const IterSample = () => {
const [names, setNames] = useState([
{ id: 1, text: "a" },
{ id: 2, text: "b" },
{ id: 3, text: "c" }
]);
const [inputText, setInputText] = useState("");
const [nextId, setNextId] = useState(5);
const result = names.map((name) => <li key={name.id}>{name.text}</li>);
const onChange = (e) => setInputText(e.target.value);
const onClick = () => {
const newName = names.concat({
id: nextId,
text: inputText
});
setNextId(nextId + 1);
setNames(newName);
setInputText("");
};
return (
<>
<ul>{result}</ul>
<input onChange={onChange} value={inputText} />
<button onClick={onClick}>click</button>
</>
);
};
export default IterSample;
const a = [1,2,3,4,5,6];
const b = a.filter(n=>n>3); // [4,5,6]
const c = a.filter(n=>n!==3);// [1,2,4,5,6]
import React, { useState } from "react";
const IterSample = () => {
const [names, setNames] = useState([
{ id: 1, text: "a" },
{ id: 2, text: "b" },
{ id: 3, text: "c" }
]);
const [inputText, setInputText] = useState("");
const [nextId, setNextId] = useState(5);
const result = names.map((name) => <li key={name.id} onDoubleClick={()=>{onRemove(name.id)}}>{name.text}</li>);
const onChange = (e) => setInputText(e.target.value);
const onClick = () => {
const newName = names.concat({
id: nextId,
text: inputText
});
setNextId(nextId + 1);
setNames(newName);
setInputText("");
};
const onRemove = (id) => {
const nextName = names.filter((name) => name.id !== id);
setNames(nextName);
};
return (
<>
<ul>{result}</ul>
<input onChange={onChange} value={inputText} />
<button onClick={onClick}>click</button>
</>
);
};
export default IterSample;