资讯专栏INFORMATION COLUMN

setSignVisible的修改

chenjiang3 / 287人阅读

摘要:传入从中获取传入可以在页面中获取组件通过是或来判断是否显示登陆框则显示则隐藏隐藏登陆框调用从原始状态获取如果初次登陆没有则调用显示登陆框如果有信息则执行下面的代码

store传入accountReducer

1.从cookie中获取id,avatar,nickname.
2.createStore(reducer, initState)传入reducer,可以在页面中state.accountReducer.current_account获取

const middleware = routerMiddleware(browserHistory);
let initState = {};

if(Cookie.hasItem("id")){
  initState.accountReducer = {
    current_account:{
      id: Cookie.getItem("id"),
      avatar: Cookie.getItem("avatar"),
      nickname: Cookie.getItem("nickname")
    }
  }
}
let store = createStore(
    reducer,
    initState,
    compose(
      applyMiddleware(thunkMiddleware, middleware),
      (window.RAILS_ENV === "development" && window.devToolsExtension) ? window.devToolsExtension() : f=>f
    )
);
SignInPopup组件

1.通过this.props.sign_in_popup_visible是true或false来判断是否显示登陆框.
true则显示,false则隐藏.
2.隐藏登陆框,this.setSignVisible(false);,调用this.props.dispatch(setSignInPopupVisible(visible));
3.Action:
function setSignInPopupVisible(value){

return {
  type: SET_SIGN_IN_POPUP_VISIBLE,
  value: value
};

}
4.reducer:
function current_account(state={}, action){

switch(action.type){
  case SET_ACCOUNT:
    return Object.assign({}, state, action.data);
  case INIT_ACCOUNT:
    return action.data;
  default:
    return state;
}

}

  {
    this.props.sign_in_popup_visible?
    
      
    :""
  }
sign_in_popup_visible: state.accountReducer.sign_in_popup_visible
setSignVisible: function(visible) {
  this.props.dispatch(setSignInPopupVisible(visible));
}
  function setSignInPopupVisible(value){
    return {
      type: SET_SIGN_IN_POPUP_VISIBLE,
      value: value
    };
  }
checkStatus

1.current_account从原始状态init_state获取.
如果初次登陆没有cookie,则调用this.setSignVisible(true),显示登陆框.
如果有cookie信息,则return true,执行下面的代码.
this.props.dispatch(takeRedPacket(id));
else if (xhr.status === 401) {

dispatch(setSignInPopupVisible(true));

}

checkStatus: function(){
  const {current_account} = this.props;
  if(!current_account.id){
    this.setSignVisible(true);
    return false;
  }else{
    return true;
  }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84364.html

相关文章

  • 【深入浅出事务】(3):事务隔离级别(超详细)

    摘要:客户端设置手动提交,修改事务隔离级别为,并且开启事务一定要在开启事务前修改事务的隔离级别,不然当前还是保持着原来的事务隔离级别,直到当前事务提交。 本质 隔离级别定义了数据库系统中一个操作产生的影响什么时候以哪种方式可以对其他并发操作可见,隔离性是事务的ACID中的一个重要属性,核心是对锁的操作。 锁 从数据库系统角度 共享锁(Shared Lock) 读锁,保证数据只能读取,不能被修...

    zhangrxiang 评论0 收藏0
  • Android逆向从入门到入土(smali修改,so修改)

    摘要:闲来无事,学习了下安卓的逆向工程,有助于观摩学习他人的优秀代码,查询了解后发现大体包括两部分反编译,即语法学习层,汇编学习。不多说,做过安卓开发都可以改,重点是的阅读修改。想要深入了解相关知识,可以百度关键字安卓,安卓,安卓,安卓。 闲来无事,学习了下安卓的逆向工程,有助于观摩学习他人的优秀代码,查询了解后发现大体包括两部分:1.dex反编译,即smali语法学习;2.Native层,...

    frank_fun 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<