【react dva】填坑实录,router 4.0+, less 【一直更新】

1 篇文章 0 订阅

 · 坑1:路由

升级react-dom到16.0.0后,相应的router 也被升级到了4.0以上。以往的路由设置失效。

以往:

<Route path='/HomeIndex' component={Home}>  
     <IndexRoute component={HomeIndex}/>  
     <Route path='/Home/About' component={About}/>  
     <Route path='/Home/News' component={News}/>  
     <Route path='/Home/Team' component={Team}/>  
 </Route>  
现在是不允许嵌套的。

现在的写法:

将上面的子路由删掉。

<Route path='/HomeIndex' component={Home} />  

然后在Home组件里

 

const Home = ({ match }) => (
  <div>
    <h2>Topics</h2>
    
     <Route path='/Home/About' component={About}/>  
     <Route path='/Home/News' component={News}/>  
     <Route path='/Home/Team' component={Team}/>  
 </div>) 

 

参考:

1.https://stackoverflow.com/questions/41474134/nested-routes-with-react-router-v4?noredirect=1#

2.https://www.cnblogs.com/sylarmeng/p/6920903.html

 · 坑2:dva-cli的less

dva-cli默认开启CSS Modules,此时如果直接

import  './style/index.less';
是无效的。

当然,可以这样:

import style from './style/index.less';
然后用的时候

<div className={style.title}>I am div</div>
还是可以 用的。但是有时候我希望这个less是全局的,而不是我每个控件都要应用一次。

这时候就要禁用CSS Moudules

打开根目录的.roadhogrc文件

在根节点内加一个

  "disableCSSModules": true,
即可。此时就可以直接在路由根组件中直接引用less,所有子组件都可用到。


参考:

http://www.bubuko.com/infodetail-1897541.html


 · 坑3:针对IE的适配

如果想让react+dva适配IE ,如果直接打开,则会白屏,并报错 例如 startsWith,includes 等等……

这时候需要加个插件:babel-polyfill

npm install babel-polyfil --save 后

如果是webpack 可以这样:

// webpack.config.babel.js
...
{
    ...
    entry: ['babel-polyfill', entry.js],
    ...
}

如果是dva,则找到index.js 在前面

import 'babel-polyfill';

即可。这时候再试,则会报新 错:

Objects are not valid as a React child (found: object with keys {$$typeof, type, key, ref, props, _owner, _store}). If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons. Check the render method of StatelessComponent.

此时,则是dva的小坑,这时候在


import 'babel-polyfill';

加入 

import 'react-dom';

即可!

参考:

https://mycodesmells.com/post/add-ie11-support-to-your-react-apps

https://segmentfault.com/q/1010000010997830

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值