我试图将SetIntervalMixin分成另一个组件类文件的文件。也许我不完全理解module.export是如何工作的但是......如果我喜欢这样:
module.exports = {
componentWillMount: function() {
this.intervals = [];
},
setInterval: function() {
this.intervals.push(setInterval.apply(null, arguments));
},
componentWillUnmount: function() {
this.intervals.map(clearInterval);
}
};
在SetIntervalMixin.js中,然后使用组件正常工作:
var SetIntervalMixin = require('../util/mixins/SetIntervalMixin')
但如果我这样写:
var SetIntervalMixin = {
componentWillMount: function() {
this.intervals = [];
},
setInterval: function() {
this.intervals.push(setInterval.apply(null, arguments));
},
componentWillUnmount: function() {
this.intervals.map(clearInterval);
}
};
module.export = SetIntervalMixin;
它不起作用(尝试调用setInterval()时未定义)。我认为之后缺少一些东西:
SetIntervalMixin = ...
与定义组件时类似,使用:
var yourComponent = React.createClass(...
是否有类似于React.createMixin(......?或者最好的方法)。
感谢。
答案 0 :(得分:4)
您的代码是正确的,您在第二个版本中只有一个拼写错误(应该是module.exports
而不是module.export
):
var SetIntervalMixin = {
componentWillMount: function() {
this.intervals = [];
},
setInterval: function() {
this.intervals.push(setInterval.apply(null, arguments));
},
componentWillUnmount: function() {
this.intervals.map(clearInterval);
}
};
module.exports = SetIntervalMixin;