我们如何在使用 Hooks API 时为 props 添加别名?

How can we alias props when using the Hooks API?

以前,我是这样使用[@bs.as "in"]的。

[@bs.deriving abstract]
type cssTransitionProps = {
  [@bs.as "in"]
  _in: bool,
  timeout: int,
  classNames: string,
};

我怎样才能在这里做类似的事情?

module CSSTransition = {
  [@bs.module "react-transition-group"] [@react.component]
  external make:
    (
      ~_in: bool,
      ~timeout: int,
      ~classNames: string,
      ~children: React.element
    ) =>
    React.element =
    "CSSTransition";
};

你不需要做任何事情 bucklescript 会为你做。

如果您查看 js 输出,您会发现 _in 已转换为 in

return React.createElement(ReactTransitionGroup.CSSTransition, {
              in: match[0],
              timeout: 200,
              classNames: "my-node",
              children: React.createElement("div", undefined, React.createElement(CommandsArea.make, {
                        text: text,
                        setText: match[1]
                      }), React.createElement(Toolbar.make, {
                        result: match[0]
                      }))
            });