是否有机会将组件用作全局ActivityIndicator,它具有透明色并且是由我在React-Native上创建的?
详细信息:
ActivityIndicator
的{{1}}组件。ActIndicator
组件。App
组件,用于包装Root
和ActIndicator
组件。 App
组件render
方法的最终代码如下所示:
Root
我尝试了几种方法,但我不能成功。
我想我的大脑已经停止了。
我也猜测可能存在逻辑错误。
答案 0 :(得分:0)
我不认为你应该像孩子一样通过App,我使用它的方式更像是这样:
render() {
if (this.state.showActivityIndicator) {
return(
<View>
<ActivityIndicator />
<App />
</View>
)
}
return (<App />)
}
但最好像这样设置它:
render() {
return (
<View>
<ActivityIndicator animating={this.state.showActivityIndicator} />
<App />
</View>
)
}
答案 1 :(得分:0)
const withLoadingOverlay = (Component) => class withLoadingOverlayView extends React.Component { props: withLoadingOverlayProps
// Indicator view styles loadingOverlay = (style) => (
<View style={[style, styles.someDefaultStyles]}>
<ActivityIndicator color={someColor} size="large" />
</View> )
render() {
const { pending, ...passProps } = this.props;
const { width, height } = Dimensions.get('window');
return (
<View style={{ flex: 1 }}>
<Component {...passProps} />
{pending && this.loadingOverlay({ width, height })}
</View>
); } };
我曾经用HOC包装整个容器,并使用redux动作设置启动待定支持为true且成功或未设置为false因此该支柱将由HOC使用,并且仅当挂起设置为on时才会显示指示符真正。
在容器中,您必须在连接中包装组件
export default connect(
(state) => ({
pending: state.reducer.pending, // pending prop should be here
}),
(dispatch) => ({ dispatching redux actions })
)(withLoadingOverlay(WrappedComponent));