redux
- 今天在写项目的时候,由于加了
redux
,在entry.js
里面导入了component
里面的组件,结果导致错误this.props.onAdd() is not a function
,最后改为导入container
里面的组件解决了这个问题
export default connect(mapStateToProps, mapDispatchToProps)(Add);
通过react-redux
提供的connect
方法将我们需要的state
中的数据绑定到props
上,同时绑定展示组件,在展示组件上显示,所以入口文件里面需要导入容器组件
middle
- 错误做法
const createStoreMiddle = applyMiddleware(AddRequest);
const Store = createStoreMiddle(reducer);
- 正确做法
const createStoreMiddle = applyMiddleware(AddRequest);
const Store = createStore(reducer,createStoreMiddle);
或者
const createStoreMiddle = applyMiddleware(AddRequest)(createStore);
const Store = createStoreMiddle(reducer);
错误原因是没有将applyMiddleware
添加在createStore
中
请求状态
- 在控制台
network
里面看到请求状态是pendding
,然后发现是后台没有响应,导致http
处于pendding
状态
webpack
- 打算添加两个入口文件,然后添加之后,很不明白为什么打包的两个文件一个正常,另一个
import
报错,不知道是没有打包成功还是其他问题,但是安装了npm install babel-cli
,将之前的node
运行改为babel-node
之后解决了这个问题 - 代码如下:
entry:{
src:'./src/entry.js',
route:'./routes/model.js'
},
output:{
path:__dirname+'/public/dist',
filename:"[name].js"
},
-
babel-cli
是工具自带一个babel-node
命令,提供一个支持ES6
的REPL(Read-Eval-Print-Loop,可交互式运行)环境。它支持Node
的REPL环境的所有功能,而且可以直接运行ES6
代码
总结
- 项目中遇到了很多问题,总的来说还是原理没有搞清楚,虽然学会了简单调试定位问题,但解决问题的能力还是有待提高,今天遇到问题的时候在Stack Overflow上提问,也得到了答案,以后要多多提问,多和同学讨论
- 写demo真的很有用,简单的学会一个东西,但有时候遇到问题,因为有上下文环境,所以demo比较难划分的很小