最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • ionic 入门指北《6》

    正文概述 掘金(快乐丁工人)   2021-01-18   440

    昨晚做梦,有人问我,混合app为啥要打开浏览器呢?

    ionic 入门指北《6》

    怎么怼的没记住,但似乎是怼输了。白天查查资料,今晚继续怼……

    之前引入了antd,样式不生效,于是就按照antd的说明书引入。

    西卡西

    0.npm update react-scripts

    craco不可用一直提示react-scripts升级。

    升级了ionic崩了。

    真是爽啊。

    试试3X时代的react-app-rewired

    yarn add react-app-rewired customize-cra
    yarn add babel-plugin-import
    
    
    const {override, fixBabelImports} = require('customize-cra');
    module.exports = override(
        fixBabelImports('import', {
            libraryName: 'antd',
            libraryDirectory: 'es',
            style: 'css',
        })
    );
    

    结果,可行。

    ionic 入门指北《6》

    在RN中我们忘记了react-saga。

    那么首先我们打开react-saga文档

    告辞。

    我需要react-saga中文文档。

    yarn add redux react-redux redux-saga
    

    先不管saga那些乱七八糟的api,store先搞一套。

    ionic 入门指北《6》

    store.ts

    import { createStore, applyMiddleware,combineReducers } from 'redux';
    import createSagaMiddleware from 'redux-saga';
    import {login} from "./login";
    const reducer = combineReducers({
        login,
    });
    export const store = createStore(
        reducer,
        applyMiddleware(createSagaMiddleware())
    );
    

    login.ts

    interface IState{
        userInfo: {} | null
    }
    interface IAction{
        type: string;
        payload: any;
    }
    const initState: IState={
        userInfo:null
    }
    export const login = (state:IState = initState, action: IAction)=>{
        switch (action.type){
            case 'login_success':{
                return {
                    ...state,
                    ...action.payload
                }
            }
            case 'no_permission':{
                return {
                    ...state,
                    ...action.payload
                }
            }
            default:{
                return state;
            }
        }
    }
    

    App.tsx 

    import React from 'react';
    /* Core CSS required for Ionic components to work properly */
    import '@ionic/react/css/core.css';
    /* Basic CSS for apps built with Ionic */
    import '@ionic/react/css/normalize.css';
    import '@ionic/react/css/structure.css';
    import '@ionic/react/css/typography.css';
    /* Optional CSS utils that can be commented out */
    import '@ionic/react/css/padding.css';
    import '@ionic/react/css/float-elements.css';
    import '@ionic/react/css/text-alignment.css';
    import '@ionic/react/css/text-transformation.css';
    import '@ionic/react/css/flex-utils.css';
    import '@ionic/react/css/display.css';
    /* Theme variables */
    import './theme/variables.css';
    import {Route} from 'react-router-dom';
    import {IonApp, IonRouterOutlet} from '@ionic/react';
    import {IonReactRouter} from '@ionic/react-router';
    import {Provider} from 'react-redux';
    import {store} from './store';
    import Home from './pages/Home';
    import Login from './pages/Login';
    
    import './perssions'
    
    const App: React.FC = () => (
        <IonApp>
            <Provider store={store}>
                <IonReactRouter>
                    <IonRouterOutlet>
                        <Route path="/" component={Home}/>
                        <Route path="/login" component={Login}/>
                    </IonRouterOutlet>
                </IonReactRouter>
            </Provider>
        </IonApp>
    );
    export default App;
    

    permission.ts

    import {store} from "./store";
    import {message} from 'antd';
    if(!store.getState().login.userInfo){
        message.info('This is a normal message');
        store.dispatch({
            type: 'no_permission',
            payload:{
                userInfo: null
            }
        })
        window.history.pushState('','','/login')
    }
    

    ionic 入门指北《6》

    这个问题,很明显是样式没有生效。

    config-overrides.js打点该文件执行了,web里样式是生效的。

    使用.babelrc,移除config-overrides,web失效。

    {
      "plugins": [
        ["import", {
          "libraryName": "antd",
          "style": 'css'
        }]
      ]
    }
    

    因为没有eject的原因

    npm run eject --force
    

    1.Remove untracked files, stash or commit any changes, and try again.

    ionic start ionic04-react
    npm run eject
    

    复制粘贴文件,然后他就跑不起来了

    2. There might be a problem with the project dependency tree. It is likely not a bug in Create React App, but something you need to fix locally.

    ionic start ionic04-react
    npm run eject
    npm run start
    // 下载所有依赖
    npm run build
    npx cap add android
    ionic capacitor run android -l --host=host
    

    下了一年的依赖……

    3.There might be a problem with the project dependency tree.

    提示包版本问题,随后这个错误信息,反复横跳。

    yarn upgrade-interactive --latest
    

    这行命令让我非常忐忑,果然报错了。

    4.Invalid options object. Terser Plugin has been initialized using an options object that does not match the API schema.

    现在的想法是需要改一下ionic cap 中启动react-scripts的命令。

    不行,目前解决不了。

    感觉先打包后加壳样式应该是可行的。

    要么开发时候全局引入,打包时候注释掉?

    全局引入antd样式是不可能的,这辈子都不可能的。

    弃坑,告辞!


    起源地下载网 » ionic 入门指北《6》

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元