簡體   English   中英

最初未呈現的樣式組件不加載其樣式

[英]Initially not rendered styled-component doesn't loads its style

當初始渲染樹中不存在樣式組件時,它不會加載其樣式。 例如,我有一張卡片,其中有一些從 API 獲取的數據,如果 API 花費的時間超過 2 秒(大約),則不會加載樣式。

const Card = styled.div`
  border: 1px solid black;
  padding: 5px;
  margin: 5px;
  border-radius: 5px;
  min-width: 200px;
`;

const ToDosPage = ({ createData, toDos, getData }) => {
  const [newTodo, setNewTodo] = useState({
    expirated: false,
    done: false,
    done_by: 2,
    task: 1,
  });
  useEffect(() => {
    getData('toDos');
  }, [getData]);

  const renderToDos = () => toDos.map((toDo) => <Card>{toDo.title}</Card>);

  return (
    <div>
      <div>{renderToDos()}</div>
    </div>
  );
};

const mapStateToPops = (state) => ({ toDos: state.dataManager.toDos });

const mapDispatchToProps = { createData, getData };

export default connect(mapStateToPops, mapDispatchToProps)(ToDosPage);

我認為問題可能出在 index.html 或 webpack 中:

<!DOCTYPE html>
<html>
  <head>
      <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
    <!--load all styles -->
    <title>
      my-app
    </title>
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>
var path = require('path');
var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: ['babel-polyfill', './app'],
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'index_bundle.js',
  },
  devtool: 'cheap-module-eval-source-map',
  module: {
    rules: [
      { test: /\.(js)$/, use: 'babel-loader', exclude: /node_modules/ },
      {
        test: /\.(css)$/,
        use: [{ loader: 'style-loader' }, { loader: 'css-loader' }, {loader: 'postcss-loader', ident: 'postcss'}],
        exclude: /node_modules/,
      },
    ],
  },
  mode: 'development',
  plugins: [
    new HtmlWebpackPlugin({
      template: 'app/index.html',
    }),
  ],
};

父組件:

import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom';
import { Provider } from 'react-redux';

import store from './src/store';
import ToDosPage from './src/pages/ToDosPage';
import TasksPage from './src/pages/TasksPage';
import Menu from './src/components/Menu';
import { colors } from './src/utils/constants';

const App = () => (
  <Provider store={store}>
    <Router>
      <Menu />
      <Route path='/todos' component={ToDosPage} />
      <Route path='/tasks' component={TasksPage} />
    </Router>
  </Provider>
);

ReactDOM.render(<App />, document.getElementById('app'));

在嘗試了很多事情之后,我發現 chrome 中的某些擴展存在問題。 我禁用了所有擴展程序,它開始正常工作。

編輯:它可以是任何擴展,它不必與反應相關。 例如,在我的情況下,它是一個 Loom 擴展

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM