Я пытаюсь украсить один из методов в моем компоненте реакции, проверить реквизиты и состояния, а затем что-то с ними сделать.Однако я не уверен, почему this
всегда undefined
, но он получает контекст class
/ this
, когда я использую описанные выше методы жизненного цикла.
Пример кода:
import dosomething from 'utils/dosomething';
import Button from 'button';
class App extends React.Component {
// this shows this context in dosomething
@dosomething
componentWillMount() {
// John Doe written codes.
}
// this doesn't shows this context in dosomething
@dosomething
someMethod() {
// John Doe written codes.
}
render() {
return <Button
{...this.props}
onClick={this.someMethod}
/>
}
}
Тогда мой декоратор
//utils/dosomething.js
export function dosomething(target, name, descriptor) {
const decoratee = descriptor.value;
descriptor.value = function decorated(...args) {
// shows defined for componentWillMount but undefined for methods
console.log(this);
decoratee.apply(this, args);
};
}
Как мне получить доступ к this
контексту из метода?