React

useState动态更新数据

2019-09-27  本文已影响0人  奋斗的小小小兔子

问题
数组渲染组件,每一个都使用useState太冗余了,特别是表单填写的时候。

解决方法
对象的扩展运算符

对象的扩展运算符(...)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中。

自定义属性在扩展运算符前面 默认属性

通过对象扩展运算符,更新一个对象的不同属性值,这样就可以使用一个hook来动态更新所有(有规律)的数据状态。


import React, { useState, useEffect } from 'react';

const TailList = ({ data = [] }) => {
  const [btnArrStatus, setBtnArrStatus] = useState({});
  
  const handleClick = (btnObj) => {
    const { jumpUrl = '', key } = btnObj;
    setBtnArrStatus({
      ...btnArrStatus,
      [`${key}Disabled`]: true,
    });
    window.location.href = jumpUrl;
  };

  return (
    <div>
      {
        data.map(itm =>
          (
            <button
              key={itm.key}
              disabled={btnArrStatus[`${itm.key}Disabled`]}
              onClick={() => handleClick(itm)} />
          ))
      }
    </div>
  );
};

export default TailList;


上一篇 下一篇

猜你喜欢

热点阅读