代码之家  ›  专栏  ›  技术社区  ›  Богдан Горбатенко

是否有一个Babel transformer用于以速记方式应用JSX属性?

  •  1
  • Богдан Горбатенко  · 技术社区  · 7 年前

    function AddressInput(props) {
     const { error, value, onChange, hints } = props;
     return (
       <CustomInput  error={error}  onChange={onChange}  value={value} hints={hints} />
     );
    }
    

    我不想使用 <CustomInput ...props> 因为第一种变体允许过滤广泛使用的组件的道具。 我想要的是,以较短的方式传递组件道具,可能类似于:

    const { error, value, onChange, hints } = props;
    <CustomInput :error :onChange :value :hints />
    

    有没有巴别塔变形金刚可以提供这样的能力?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Luke Horvat    7 年前

    没有额外的巴别塔插件是必要的。可以使用速记属性名称+扩展运算符。

    例子:

    function AddressInput(props) {
      const { error, value, onChange, hints } = props;
      return (<CustomInput {...{error, value, onChange, hints}} />);
    }
    

    虽然不是最简洁的语法,但将来可能会有所改进。请参阅 GitHub discussion thread