2015-09-03 68 views
0

我正在使用ECMA6類和React,但遇到嵌套組件的render()方法中的異常未得到報告的情況。React和ECMA6

任何想法?

舉例來說,這不會報告異常:

class Child extends React.Component { 
    render() { 
    foo; // Throws exception, "foo is undefined" 
    } 
} 

class Demo extends React.Component { 
    render() { 
    return <Child /> 
    } 
} 
+0

你可能要首先定義FOO,也許你的「孩子」組件之前?或者你可能在某處定義了它,這是你的完整代碼嗎? – Jim

+0

我複製並粘貼了你的代碼,並且如預期的那樣看到'未捕獲的ReferenceError:foo未定義'。你是否記得使用'React.render(,document.getElementById('page'));'或者類似的東西來渲染Demo作爲根組件? – initialxy

回答

0

功能渲染需要返回出頭。渲染函數中沒有返回值,並且foo需要在某個地方聲明。

class Child extends React.Component { 
    render() { 
    let foo = <span>HelloWorld</span>; 
    return foo; // foo is now defined 
    } 
} 

class Demo extends React.Component { 
    render() { 
    return <Child /> 
    } 
}