unsupported-syntax
React ์ปดํ์ผ๋ฌ๊ฐ ์ง์ํ์ง ์๋ ๋ฌธ๋ฒ์ ๋ํด ๊ฒ์ฆํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ๋ ๋ฆฝ์ ์ธ ์ ํธ๋ฆฌํฐ ํจ์์ ๊ฐ์ด React ์ธ๋ถ์์ ์ด ๋ฌธ๋ฒ์ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ท์น ์ธ๋ถ ์ฌํญ
React ์ปดํ์ผ๋ฌ๋ ์ต์ ํ๋ฅผ ์ ์ฉํ๊ธฐ ์ํด ์ฝ๋๋ฅผ ์ ์ ์ผ๋ก ๋ถ์ํฉ๋๋ค. eval ๋ฐ with์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ปดํ์ผ ํ์์ ์ฝ๋๊ฐ ๋ฌด์์ ํ๋์ง ์ ์ ์ผ๋ก ์ดํดํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ๋ฌ๋ ์ด๋ฅผ ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ๋ฅผ ์ต์ ํํ ์ ์์ต๋๋ค.
์๋ชป๋ ์์
์ด ๊ท์น์ ๋ํ ์๋ชป๋ ์ฝ๋ ์์์ ๋๋ค.
// โ ์ปดํฌ๋ํธ์์ eval ์ฌ์ฉ
function Component({ code }) {
const result = eval(code); // ๋ถ์ํ ์ ์์
return <div>{result}</div>;
}
// โ with ๋ฌธ ์ฌ์ฉ
function Component() {
with (Math) { // ๋์ ์ผ๋ก ์ค์ฝํ ๋ณ๊ฒฝ
return <div>{sin(PI / 2)}</div>;
}
}
// โ eval์ ์ฌ์ฉํ ๋์ ํ๋กํผํฐ ์ก์ธ์ค
function Component({propName}) {
const value = eval(`props.${propName}`);
return <div>{value}</div>;
}์ฌ๋ฐ๋ฅธ ์์
์ด ๊ท์น์ ๋ํ ์ฌ๋ฐ๋ฅธ ์ฝ๋ ์์์ ๋๋ค.
// โ
์ผ๋ฐ์ ์ธ ํ๋กํผํฐ ์ก์ธ์ค ์ฌ์ฉ
function Component({propName, props}) {
const value = props[propName]; // ๋ถ์ ๊ฐ๋ฅ
return <div>{value}</div>;
}
// โ
ํ์ค Math ๋ฉ์๋ ์ฌ์ฉ
function Component() {
return <div>{Math.sin(Math.PI / 2)}</div>;
}๋ฌธ์ ํด๊ฒฐ
๋์ ์ฝ๋๋ฅผ ํ๊ฐํด์ผ ํฉ๋๋ค
์ฌ์ฉ์๊ฐ ์ ๊ณตํ ์ฝ๋๋ฅผ ํ๊ฐํด์ผ ํ ์ ์์ต๋๋ค.
// โ ์๋ชป๋ ์์: ์ปดํฌ๋ํธ์์ eval
function Calculator({expression}) {
const result = eval(expression); // ์์ ํ์ง ์๊ณ ์ต์ ํ ๋ถ๊ฐ๋ฅ
return <div>๊ฒฐ๊ณผ: {result}</div>;
}๋์ ์์ ํ ํํ์ ํ์๋ฅผ ์ฌ์ฉํ์ธ์.
// โ
๋ ๋์ ๋ฐฉ๋ฒ: ์์ ํ ํ์ ์ฌ์ฉ
import {evaluate} from 'mathjs'; // ๋๋ ์ ์ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
function Calculator({expression}) {
const [result, setResult] = useState(null);
const calculate = () => {
try {
// ์์ ํ ์ํ์ ํํ์ ํ๊ฐ
setResult(evaluate(expression));
} catch (error) {
setResult('์๋ชป๋ ํํ์');
}
};
return (
<div>
<button onClick={calculate}>๊ณ์ฐ</button>
{result && <div>๊ฒฐ๊ณผ: {result}</div>}
</div>
);
}