react-cnode
react-cnode copied to clipboard
👨🏻💻React构建的cnode社区(附详细问题说明)
在应用中消息那一块有一个判断对象是否为空的地方,发现怎么也无法生效,判断方法如下 ```js let data = {}; if(!data){ ... } ``` >if里面无法生效 上面判断空对象的方法是错误的,我搜索找到了几种判断空对象的方法如下: 1. JSON.stringify , 参考资料:[ JavaScript 如何判断一个对象{}是否为空对象](http://blog.csdn.net/u012408083/article/details/51264211) ```js var data = {}; JSON.stringify(data) == "{}" // true ``` 2....
背景是这样的,需要监听一下scroll事件,但是监听函数需要当前组件的this环境,所以监听函数上需要bind(this), 但是这样操作后发现无法removeEventListener这个监听,代码如下 ```js handleScroll(){ this.setStaete() //举例不一定用到setState } componentDidMount(){ window.addEventListener('scroll', this.handleScroll.bind(this)); } /** 组件销毁后必要的清理*/ componentWillUnmount(){ window.removeEventListener('scroll', this.handleScroll) } ``` >1. 如果我不在addEventListener的时候bind(this), 则监听函数里涉及到组件的thi会报错,提示找不到 >2. 但是如果我bind(this)则无法移除这个监听
背景是这样的: >给回复点赞的逻辑,是通过一个异步action, 在这个异步action中发送点赞请求,如果请求成功,则再调用获取当前topic的action, 这样可以重新加载一遍当前的topic以便使得点赞的更新显示出来,但是实际测试的过程中发现无法触发异步action中的异步action, 但是可以触发异步action中的同步action(另一个action) starAction.js ```js import topicActions from './topicActions'; let starActions = { starReply: function(replyId, replyLoginname){ return function (dispatch, getState) { ..... fetch(`https://cnodejs.org/api/v1/reply/${replyId}/ups`, { method: 'POST', headers: {"Content-Type":...
参考资料:[ react 计时器如何实现定时任务来从数据库去数据并放在state中](https://segmentfault.com/q/1010000007357716?_ea=1319940)
v1.2更新说明 - Component文件夹名改为小写, Reducer文件夹名改为小写reducer - 改写Header组件,使得代码的可读性更加好 - 更改文件的命名方式,每个页面一个单独文件夹,名字同页面名字,index代表页面父组件 - 将Footer组件中的获取消息数目请求放到一个全局包含的定时器组件中,间隔30秒请求一次未读消息数目 - 将message和messageCount的action和reducer合并 - 将common/index.js中的公共组件全部改写为函数式组件
如题,代码如下 ```js const Footer = ({loginname, MessageCount}) => ( 首页 发表 消息{ MessageCount > 0 ? { MessageCount } : ''} 我的 ); const mapStateToProps = state => ({ loginname:...
v1.1更新说明
- 将Footer组件独立了出来,并且修改里面的高亮的逻辑,使用Link和IndexLink来简化 - 使用PureComponent来避免写shouldComponentUpdate,减少代码量 - 更改所有的主要页面,将组件拆分成一个个文件 - 数据更新方式都通过dispatch(action), 将action分为11个action文件 - store将数据拆分为7个reducer
原应用存在的问题 - 登录成功后再手打网址进入登录页,没有做跳转判断 - 登录页面可以多次快速点击登陆框会发出多次登陆请求,这里应该做限制 - 没有登录成功,但是可以进入退出登录页面,这里要做跳转判断 - 消息页面多次点击消息的底部按钮,会重复生成多条重复消息的错误 - 进入某用户的个人中心再回退的时候会重新加载当前的topic,这不太合理
github地址:[github: flex.css](https://github.com/lzxb/flex.css) 演示地址:[flex.css](http://lzxb.name/flex.css/)
**1. componentWillReceiveProps不触发** >背景::在登陆场景,如果登录成功,通过reduer会更新store中User的isLogine为true,则componentWillReceiveProps会接收到新的数据,从而更新组件状态 >但是如果登陆失败,我在reducer直接返回原来的state,这时候componentWillReceiveProps不触发,因为没有接受到新的数据