javascript - 如何在 React Native 中安装组件之前显示微调器?

标签 javascript reactjs react-native jsx

我有一个列表组件,需要一些时间才能加载。

我希望它在加载和安装之前显示一个旋转器,但不幸的是我尝试的一切都不起作用。

我正在尝试做这样的事情:

class List extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            isReady: false,
        };
    }

    componentDidMount() {
        this.setState({isReady: true});
    }

    render() {
        if(this.state.isReady){
            return (
                <Content>
                    {this.renderList()}
                </Content>
            );
        }
        else {
            return (
                <Spinner/>
            );
        }

    }

    renderList() {
        return this.props.data.map((item, index) => {
            return (
                <ListItem type={this.props.type} text={item} key={index}/>
            );
        });
    }
}

我做错了什么?

最佳答案

如果您不知道哪个先出现,您应该同时检查 props.data 和 state.isReady:

    render() {
        if(this.state.isReady && this.props.data.length !== 0){
            return (
                <Content>
                    {this.renderList()}
                </Content>
            );
        }
        else {
            return (
                <Spinner/>
            );
        }

    }

关于javascript - 如何在 React Native 中安装组件之前显示微调器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57846401/

相关文章:

reactjs - React - IntrinsicAttributes 类型上不存在属性

ios - Xcode 错误 - 库未加载 :/usr/local/opt/icu4c/lib/libicui18n. 58.dylib 错误 134

javascript - react native : reload app or force rerender

reactjs - 如何使用情感js将多个类名传递给内部子级

javascript - React Js 使用不同的文件更改变量

javascript - 在倒数计时器结束时将变量设置为 false

java - 是否可以在 javascript 函数中使用 java 数组?

javascript - 更改输入名称属性

javascript - 输入的日期与数据库中保存的日期不同

javascript - 如何在通量中设置ajax数据获取?