我有isLeap
作为支柱,检查当前年份是否为飞跃,另一个支柱currentMonth
是当前月份的支数。 (例如1月2日)
当我尝试在函数或闭包中创建函数时,控制台抛出"Unexpected token"
错误
70 | },
71 | daysInMonth : function(d){
> 72 | var leapCase = function(this.props.isLeap){
| ^
73 | }
74 | },
75 | render : function(){
在渲染功能中,我通过我的组件属性调用上面的函数:
<Week key={i} dayCount = {this.daysInMonth(this.props.currentMonth)} />
答案 0 :(得分:3)
您尝试使用参数this
启动一个函数,该函数用于确定函数的调用方式。如果你想在闭包中访问this.props,试试这个。
70 | },
71 | daysInMonth : function(){
var props = this.props
72 | var leapCase = function(){
| console.log(props.isLeap)
73 | }
74 | },
75 | render : function(){
在渲染功能中,将其称为
<Week key={i} dayCount = {this.daysInMonth.bind(this)} />
答案 1 :(得分:1)
您有语法错误,无法使用.
和this
in name of function argument,
var leapCase = function(isLeap) {
// ...
};
leapCase(this.props.isLeap)
答案 2 :(得分:1)
要定义一个闭包,你需要像这样包装函数
var leapCase = (function(props){
return function(){
if (props.isLeap){
...
}
};
})(this.props)