我在反应中使用道具。并找到了这个
var App = React.createClass({
render: function(){
var t = this.props.txt;
return(<div>
<h1> {t}</h1>
</div>);
},
});
React.render(<App txt="hi"/>, document.body);
这很好,因为变量t在渲染函数中。但是当放在渲染函数之外时,就像这样
var App = React.createClass({
// position of t is shifted here
var t = this.props.txt;
render: function(){
return(<div>
<h1> {t}</h1>
</div>);
},
});
React.render(<App txt="hi"/>, document.body);
这不起作用。由于我在React.render中直接调用App而不是函数渲染,我希望App应该有可用的道具。我错过了什么?
答案 0 :(得分:3)
我不太清楚为什么你希望这个有效。这只是无效的JavaScript。您无法在variable declaration内加object literal。您正在做的简化示例:
var foo = { var bar = 42; };
这是语法错误。我建议read a JavaScript tutorial to learn more about objects。