目录

  1. 1、通过ref获取组件或DOM
  2. 2、redux一些注意

1、通过ref获取组件或DOM

1
2
3
4
5
6
7
8
9
10
render(){
return {
<div>
<canvas
width="190px"
height="170px"
ref={(e)=>this.canvas = c}/>
</div>
}
}

2、redux一些注意

  • redux更新store是异步的,如store的一个属性start:true,通过action修改start:false,然后调用另一个方法获取start,这个start值可能还是true.

  • 更新store最好能够细化到更新哪一个属性,比如更新info下面的一个name属性,最好直接更新name,避免“先取info对象->修改name->更新info”这种情况(不绝对,某些时候使用这种方式更方便直观),下面提供一种更新某个对象下某个属性值得方法,如更新a{b{c:’’}}的c属性,key格式可以是’a.b.c’

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    export function diagnoseReducer(state = initState, action) {
    switch (action.type) {
    case UPDATE_FIELD:
    let {key,value} = action.args;
    if(key===undefined||key===null)throw '参数不符合{key:"",value:""}格式或key未定义';
    let keys = key.split(/\./),
    len = keys.length,
    obj = state;
    for(let i=0;i<len-1;i++){
    obj = obj[keys[i]];
    if(obj==undefined)throw `字段'${keys[i]}'不存在,UPDATE_FIELD错误`;
    }
    obj[keys[len-1]] = value;
    return {...state};
    default:
    return state;
    }
    }
  • 组件继承时,如果组件需要connect到redux,只能connect到具体的某个子组件上,不能connect到父组件上,父组件可以访问到子组件connect到的数据和方法