最近的React项目踩的坑和一些积累的经验

1: react项目中有时候在render里面写οnclick={function(参数)} ,如果在方法里传参的话进入页面时会自执行,

如果不想让方法自执行,将写法改为οnclick={()=>{function(参数)}}就行

2:

React异步未获取到数据的情况

如果页面渲染依赖异步数据,由于数据延迟,有的办法是:data&&渲染逻辑,意思是有数据时渲染,注意没数据时,return也应该有内容。
我通常添加一个判断条件,因为data&&渲染逻辑这种写法也许有多处。这个条件依赖state或props里某个数据,在没有拿到该数据时渲染为空,之后react会根据改数据变化渲染出内容。
举一个例子,contents这个值是react-redux所调用异步方法的返回值,在componentWillMount() 钩子中调用this.props.getPageContents()得到。那么在render()中,它的值开始为null,这时你要给它一个判断if(!contents)return<></> ,再续写渲染逻辑就没问题了。
注意这个判断条件是props或state定义的变量。
 

同时需注意,map方法不会检测空数组,如果用map方法遍历的数组为空,也会直接页面崩溃

3:

React写方法时,可以用Use方法名,在封装API时候命名,意思是自定义封装的函数,在这里面可以用

const [state, setState] = useState([]);

  useEffect(() => {

    request(url, {

      method: 'post',

      data: parms,

    }).then((res) => {

      let nowuse = [];

      res.data.forEach((v, i) => {

        v.key = i;

        console.log(v);

        console.log(123);

        nowuse.push(v);

      });

      setState([]);

      setState(nowuse);

    });

  }, []);

  return state;

这种写法来进行数据处理,这样返回出去的会是直接处理好的数据,

但是如果你这样使用,调用方法后将无法处理数据,有利有弊,慎用\

4 如果拿const定义方法的话,想复用这个方法,则方法名后面不能加括号 

即原本为 const a=方法()

改为          const a=方法        即可复用

方法名后加括号等于被调用了一次了

5 React中组件如果想动态获取某个内容(在本项目中是用的Datepicker日期选择期)设置defaultValue,项目需求是根据不同的人动态获取默认时间,如果直接设置defaultValue={Date}不会动态获取,这是在组件上设置一个Key={Date}属性,即可每次都重新获取一次属性,Key的值跟动态获取的值要相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值