reactjs - 在react.js中从api完全获取数据之前加载Skeleton

标签 reactjs react-hooks

我想在使用以下代码从react.js中的API完全获取数据之前加载骨架10次,但骨架未加载...

const snippetsdata = snippetsData.data;;
const [snippets, setSnippets] = useState([]);
const [loading, setLoading] = useState(false);

useEffect(() => {
    setLoading(true);
    const timer = setTimeout(() => {
        setSnippets(snippetsdata);
    setLoading(false);
    }, 3000);
    return () => clearTimeout(timer);
}, []);
{loading && Array(10).map(()=>{
                                <SnippetsSkeleton />
                            })}

最佳答案

当您使用Array(10)时,实际上您的map函数不会迭代您的数组项,因为Array(10)创建了一个长度为 10 但没有任何元素的数组,因此索引 [0][1]、...、[9]未创建。您可以使用 Array.from 而不是 Array(10).map(...) ,像这样:

Array.from({length: 10}, (v,i)=> <SnippetsSkeleton key={i}/>)

Array.from(Array(10), (v,i)=> <SnippetsSkeleton key={i}/>)

解决您的问题的另一个解决方案是使用 Array.fill ,像这样:

Array(10).fill(undefined).map((v,i)=> <SnippetsSkeleton key={i}/>);

关于reactjs - 在react.js中从api完全获取数据之前加载Skeleton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70727488/

相关文章:

reactjs - React Hooks 的提前返回问题

javascript - 等待 useEffect 完成,然后访问对象属性

reactjs - react 钩子(Hook) : useEffect() is called twice even if an empty array is used as an argument

javascript - 使用 useLayoutEffect 钩子(Hook)删除 React Native 中标题的底部边框

javascript - 世博会文字转语音语音信息

reactjs - React PureComponent 中的 shouldComponentUpdate 实现

javascript - GatsbyJS 和 Wordpress REST API 401 未授权错误

javascript - 使用 React 和 Express.js 获取 API 响应不会通过 console.log 显示任何结果

javascript - 如何嵌套Reselect选择器?

reactjs - 如何在 onChange 之后清除 Material-ui 中自动完成的输入?