记录自己的学习开发过程。
1.当你在写react的时候报了这个错误或者警告:Each child in an array or iterator should have a unique “key” prop.
解决办法是在render每个循环的标签内添加属性key 至于为何这么搞 还有待研究。
return<divkey={key}>Hello,{name}!</div>
2.每个render只能返回一个根结果,如果是组合的话,要在组合之外加一层,包裹起来。
3.Invariant Violation: _registerComponent(...): Target container is not a DOM element.
就是一个找不到DOM节点的问题,将html文件中引用的js文件放到页面最后就好了,受加载顺序影响。
4.在使用ztree的时候,jsx中的初始化树的方法$.fn.zTree.init($("#ztree"),this.state.setting,this.state.zNodes);
其中红色部分一定要使用jquery或者原生js来获取元素节点,不能使用react中ref,
例如:
componentDidMount: function(){
var obj = this.refs.refZtree;
$.fn.zTree.init(obj,this.state.zNodes);
}
这样会报错:obj.attr is not a function,原因是在ztree在init方法执行时,可能是跟jquery装载机制有关系,这块还有待研究。
5.在使用map循环时,内部的事件如onClick会失效,应该在该map方法的尾部加上bind(this)
this.state.keys.map(function(key,i){
return <th key={i} className={st} onClick={this.handleSort} name={key}>{dataHeader[key]}</th>
}.bind(this))
添加到this.handleSort.bind(this)是不可以的,原因可能ES5标准的原因,记一下。
6.不要在map的时候进行return。而是先将map的结果保存到一个变量,然后return这个变量。