使用装饰器前:
const A = (peops) => {...}
export default connect(state => ({
gData: state.gData,
}))(A);
使用装饰器后:
@connect(state => ({
gData: state.gData,
}))
const A = (peops) => {...}
export default A
使用装饰器后的写法会报错,请问如何修正?
如果是 class
组件则正常不报错
使用装饰器前:
const A = (peops) => {...}
export default connect(state => ({
gData: state.gData,
}))(A);
使用装饰器后:
@connect(state => ({
gData: state.gData,
}))
const A = (peops) => {...}
export default A
使用装饰器后的写法会报错,请问如何修正?
如果是 class
组件则正常不报错
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
装饰器只能用于类和类的属性、方法,不能用于函数,因为存在函数提升。类是不会提升的。这里有一个例子:
上面的代码,意图是执行后counter等于1,但是实际上结果是counter等于0。因为函数提升,使得实际执行的代码是下面这样:
另外,使用装饰器语法需要使用对应的 babel 插件。