使用ES6类语法,我无法在类中的其他方法中保留context
的值。例如:
class Repos extends React.Component {
constructor(props, context) { // eslint-disable-line
super(props, context);
console.log(this.context.router);
}
handleSubmit(event) {
event.preventDefault();
const userName = event.target.elements[0].value;
const repo = event.target.elements[1].value;
const path = `/repos/${userName}/${repo}`;
console.log(path); // eslint-disable-line
this.context.router.push(path);
}
对于第一个控制台日志,上下文仍然存在:
对于第二个控制台日志,不是那么多:
如何在构造函数之外的方法中处理this.context
,但是在类中?
答案 0 :(得分:5)
你有没有忘记绑定功能来保存上下文?
如果将函数传递给某个action属性(例如onSubmit),则应使用bind。 React ES6-classes不会自动绑定方法。