React의 다른 구성 요소 클래스에서 구성 요소 클래스의 인스턴스를 렌더링하려고합니다. 그러나 어떤 이유로 브라우저는 구성 요소 인스턴스가 정의되지 않았다고 불평합니다. 나는 그것을 모두 같은 JS 파일 (Codepen의 JS 윈도우)에 가지고있다. 내 코드는 다음과 같습니다. -응답에서 구성 요소 인스턴스 렌더링
var NavBar = React.createClass({
render: function() {
var pages = ['home', 'blog', 'pics', 'bio', 'art', 'shop', 'about', 'contact'];
var navLinks = pages.map((page) => {
<a href="{'/' + page}">{page}</a>
});
return <nav>{navLinks}</nav>;
}
});
var Page = React.createClass({
render: function() {
return (
<div>
<h1 className="text-primary">Welcome!</h1>
<NavBar />
<h2 className="text-primary">About Me</h2>
</div>
);
}
});
ReactDOM.render(<Page />, document.getElementById('app'));
여기에있는 앱은 Codepen입니다. 이것은 내가 얻는 오류입니다 -
pen.js:13 Uncaught ReferenceError: NavBar is not defined
나는 무슨 일이 일어나는지 잘 모르겠습니다. NavBar
은 내가 이해하는 한 Page
의 범위에서 사용할 수 있습니다.
감사합니다.
나를 위해 그것은 잘 작동합니다 - http://codepen.io/anon/pen/GNQNYp?editors = 1010,'.map' 안에 하나의 주석 만'return' 문을 추가하거나'pages.map ((page) => ({page}));'을 사용하십시오. 또한 루프 안의 요소에'key '를 추가하는 것을 잊지 마라. –
나는 본다. 나는 [ES6 팻 화살표의 암시 적 반환]이라는 개념 (https://www.sitepoint.com/es6-arrow-functions-new-fat-concise-syntax-javascript/)과 혼동을 느낀다고 생각합니다. 또한 여기서 왜 작동하지 않는지에 대한'return'의 부족이 문제를 일으키는 이유를 모르겠습니다.'var multiply = (x, y) => x * y; ' 도움을 주셔서 감사합니다! –