【发布时间】:2018-11-16 06:15:33
【问题描述】:
当 prop 从视图组件外部更改时,如何使用 recompose 重新渲染组件?
const Message = ({msg}) => <div>The prop has a value of <b>{msg}</b>.</div>
const App = Recompose.withProps(() => {
let msg = 'One'
// this async update doesn't work because nothing triggers a rerender
setTimeout(() => {msg = 'Two'}, 500)
return {msg}
})(Message)
ReactDOM.render(<App/>, document.getElementById('app'))
当这个组件被渲染时,它的值显示为 One,但在 500ms 后不会变为 Two,即使它改变了 prop。
这里的setTimeout 简化了在实际用例中我订阅 websocket 服务器并且当消息被推送时,消息组件被更新的情况。
【问题讨论】:
标签: javascript reactjs recompose