一、谷粒商城人人开源 renren-fast-vue 启动失败
报错信息: Vue 运行提示<% if (process.env.NODE_ENV === ‘production‘) { %> <% }else { %> <% } %>
当时查了好多资料 ,都是说
https://blog.csdn.net/qq_30396379/article/details/105400919
https://www.cnblogs.com/liuruyi/articles/12308597.html
本质是因为node-sass需要指定的 node版本,so要不就 node迁就sass,要不就sass迁就node,我们一般安装的node都是固定的 所以,让sass迁就node吧
可以尝试卸载重新安装node-sass
1、卸载node-sass
代码语言:javascript复制运行:npm uninstall node-sass
2、重新安装指定的node-sass版本(本项目不指定sass版本号)
代码语言:javascript复制运行:npm install node-sass 不指定版本号系统会根据node版本自动下载sass版本(推荐)
运行:npm install node-sass@4.9.0 指定sass版本号
3、成功后再npm install
4、npm run dev
二、三级菜单只显示一级的问题
这个大概是因为你复制了别人的github代码,而CategoryController他的controller没有写好。我当然图省事复制了一段代码,结果controller和service层都写了重复的逻辑。
正确方法是把controller逻辑去掉,直接返回即可。
下面的代码是返回父类信息,是父子结点的关系
代码语言:javascript复制@Override // service层
public List<CategoryEntity> listWithTree() {
// 怎么拿categoryDao?
/*
* 继承了ServiceImpl<CategoryDao, CategoryEntity>
有个属性baseMapper,自动注入
* */
// 1 查出所有分类
List<CategoryEntity> categoryEntities = baseMapper.selectList(null);
// 2 组装成父子的树型结构
// 2.1 找到所有一级分类
List<CategoryEntity> level1Menus = categoryEntities.stream().filter(
// 找到一级
categoryEntity -> categoryEntity.getParentCid() == 0
).map(menu->{
// 把当前的child属性改了之后重新返回
menu.setChildren(getChildren(menu,categoryEntities));
return menu;
}).sorted((menu1,menu2)->
menu1.getSort()-menu2.getSort()).collect(Collectors.toList());
return level1Menus;
// return categoryEntities;
}
代码语言:javascript复制@RequestMapping("/list/tree")
public R list(){
List<CategoryEntity> entities = categoryService.listWithTree();
return R.ok().put("data", entities);
}
三、Dao 缺少 @Param 注解
报错信息
2021-05-03 23:19:56.361 ERROR 1692 — [io-10000-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘entities’ not found. Available parameters are [collection, list]] with root cause org.apache.ibatis.binding.BindingException: Parameter ‘entities’ not found. Available parameters are [collection, list]at org.apache.ibatis.session.defaults.DefaultSqlSessionStrictMap.get(DefaultSqlSession.java:342) ~[mybatis-3.5.2.jar:3.5.2]at org.apache.ibatis.scripting.xmltags.DynamicContextContextAccessor.getProperty(DynamicContext.java:120) ~[mybatis-3.5.2.jar:3.5.2]at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2719) ~[mybatis-3.5.2.jar:3.5.2]at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:114) ~[mybatis-3.5.2.jar:3.5.2]
解决方式:
添加**@Param** 注解
四、PubSub is not defined
报错信息
vue.esm.js?3153:591 [Vue warn]: Error in mounted hook: “ReferenceError: PubSub is not defined” ReferenceError: PubSub is not defined
遇到PubSub问题
分类变化后请求没有被监听无法发送查询品牌信息的请求
- 首先安装pubsub-js
npm install --save pubsub-js
- 订阅方组件 在src下的main.js中引用:
import PubSub from 'pubsub-js'
Vue.prototype.PubSub = PubSub