【发布时间】:2015-08-07 17:36:26
【问题描述】:
我是新手。
我一直在尝试 react,但我一直在思考如何使用 props 传递数组。
案例一:
var c = ['program'];
var Navigation = React.createClass({
getInitialState: function () {
return {
openDropdown: -1
};
},
getDefaultProps: function () {
return {
config: ['everyone']
};
},
render: function () {
return (
<div className="navigation">
helloworld {this.props.config[0]};
</div>
);
}
});
React.render(<Navigation config={c}/>, document.body);
这是渲染 helloworld 程序。这是预期的。
后来我试过了。
案例 2:
var c = ['program'];
var Navigation = React.createClass({
getInitialState: function () {
return {
openDropdown: -1
};
},
getDefaultProps: function () {
return {
config: ['everyone']
};
},
render: function () {
return (
<div className="navigation">
{this.props.config} helloworld ;
</div>
);
}
});
React.render(<Navigation config="React"/>, document.body);
这是渲染 React helloworld。这是预期的,因为没有定义 propType。
接下来我试过了。
案例 3:
var c = ['program'];
var Navigation = React.createClass({
getInitialState: function () {
return {
openDropdown: -1
};
},
getDefaultProps: function () {
return {
config: ['everyone']
};
},
render: function () {
return (
<div className="navigation">
helloworld {this.props.config[0]};
</div>
);
}
});
React.render(<Navigation config=['!!!'] />, document.body);
不渲染任何东西。
后来我把React.render(<Navigation config=['!!!'] />, document.body);改成了React.render(<Navigation config={['!!!']} />, document.body);
它渲染了 helloworld !!!
我在一些教程中读到花括号用于传递变量,以便 JSX 知道它们是外部变量。
但是为什么 case-3 不使用显式花括号,尽管数组是在调用期间创建的,为什么它适用于 case-2,其中字符串是内联的。
大括号究竟是什么时候使用的?
如果有人能给我指点任何关于反应的好书或在线教程,那将对我有所帮助。
【问题讨论】:
标签: reactjs