Как использовать реакцию, не указанную вне метода рендера?
Я использую библиотеку ustated в своем проекте.
В методе рендеринга я использую set
как это:
render() {
return (
<ApiSubscribe>
{api => (
<button content='CLICK ME' onClick={() => api.setMessage('RENDER CLICK')} />
)}
</ApiSubscribe>
)
}
Как я могу позвонить api.setMessage
Вне рендера? Например в componentDidMount
?
ApiSubscribe это:
export const ApiSubscribe = props => {
// We also leave the subscribe "to" flexible, so you can have full
// control over your subscripton from outside of the module
return <Subscribe to={props.to || [Api]}>{props.children}</Subscribe>;
};
1 ответ
Как это?
class Child extends Component {
componentDidMount() {
this.props.api.setMessage('hey')
}
render {...}
]
let Parent = () => (
<ApiSubscribe>
{api => <Child api={api} />}
</ApiSubscribe>
)
Вы можете создать HOC, чтобы обернуть ваш компонент, а затем передать контейнер от компонента HOC дочернему компоненту в форме реквизита.