2016-09-06 3 views
1

내 내부화를 위해 React Intl을 사용 중이므로 render() 메소드에 this.props.intl.formatMessage({id: 'some.message.id'}, values)to get a translated string을 써야합니다. 이제는 바로 가기 기능을 제공하기 위해 꾸미기가 어떻게 나타나야합니까? _t('some.message.id', values) 또는 유사 할 수 있습니까?React.js 구성 요소의 데코레이터에 대한 바로 가기 방법을 일반적으로 작성하는 방법은 무엇입니까?

React.Component를 확장하거나 구성 요소를 다른 클래스 또는 다른 클래스로 래핑하는 다른 클래스를 작성할 수는 있겠지만 (가능하면 학습 및 이해 목적으로) 데코레이터로 작업하고 싶습니다. 그렇게해라.

function mydecorator(target, key, descriptor) { 
    const method = descriptor.value; 

    descriptor.value = function(...args) { 
    args.push(this.props.intl.formatMessage); // may need `.bind(...)` 
    return method.apply(this, args); 
    } 
} 

사용하려면 :

@mydecorator 
render(_t) { 
    ... 
} 

데코레이터 이후 통과 얻을 인수 목록에 this.props.intl.formatMessage에 대한 참조를 미는 기능을 render을 대체

답변

0

다음은 시작하는 뭔가 원래 render (AFAIK는 인수를 취하지 않으므로 args 변수를 가져 와서 코드를 단축 할 수 있음)에 대한 호출에서.

id 인수 등을보다 잘 처리 할 수있는 인수로 중간 함수를 푸시 할 수 있습니다.