我有以下react组件(它有效),但我使用 cb 作为 setState。
我想知道如何重构从代码中删除 cb 的代码:
this.setState({ viewer: null, document: null }, () => this.getViewer(type, item))
export class DocumentComponent extends React.Component {
constructor(props) {
super(props)
this.state = {
document: null,
viewer: null,
}
}
getViewer(type, item) {
let node = null
switch (type) {
case 'image':
node = (
<Imager url={item.src} />
)
this.setState({ viewer: node, document: item })
break
default:
this.setState({ viewer: null, document: null })
return null
}
}
openViewer(type, item) {
this.setState({ viewer: null, document: null }, () => this.getViewer(type, item))
}
handlerOnClick(item: Object) {
this.openViewer('image', item)
}
render() {
const { tileData, classes } = this.props
return (
<div className={classes.root}>
<Thumbnailss tileData={tileData} handlerOnClick={item => this.handlerOnClick(item)} />
{this.state.viewer}
</div>
)
}
}
export default DocumentComponent