标签: reason-react

make和不必要的回调创建和分配(initialState ...)?

我不懂make工作的方式:

let component = ReasonReact.reducerComponent("Greeting");

let make = (~name, _children) => {
  ...component,
  initialState: () => 0, /* here, state is an `int` */
  render: (self) => {
    let greeting =
      "Hello " ++ name ++ ". You've clicked the button " ++ string_of_int(self.state) ++ " time(s)!";
    <div>{ReasonReact.stringToElement(greeting)}</div>
  }
};
Run Code Online (Sandbox Code Playgroud)

据我所知,make每次<Greeting>在父组件渲染方法中使用组件时都会调用它,因此它将被多次调用.

但这也意味着组件记录会创建多倍的initialState功能吗?

我不明白initialState每次创建React元素时分配一些函数是有意义的,而只有在元素被挂载时才会调用它,并且对更新没有影响.

initialState举一个例子,但也可以对其他生命周期回调也一样.

ocaml reason reason-react

2
推荐指数
1
解决办法
281
查看次数

如何使用理性反应在JSX中有条件地设置HTML属性?

我想呈现一个HTML复选框,其选中状态由数据控制。

给出一个接收item类型的无状态组件{ label: string, checked: bool}

像这样:

let component = ReasonReact.statelessComponent("TodoItem");

let make = (~item, _children) => {
  render: _self => {
     <li> <input type_="checkbox" {/*looking for something like this*/ item.checked ? "checked" : "" /* doesn't compile */}/> {ReasonReact.string(item.label)} </li>
  }
}
Run Code Online (Sandbox Code Playgroud)

如何根据条件将属性的存在添加checkedinput标签item.checked == true

reactjs reason reason-react

2
推荐指数
1
解决办法
187
查看次数

使用 React Hooks 从 ReasonML 使用 HTML Canvas

我正在寻找一个关于如何开始使用以下技术的快速示例:

让我开始一个执行以下操作的片段会很棒:

  • 优雅且正确地管理对 HTML5 Canvas 元素的引用
  • 是一个简单的反应组件
  • 清除画布并绘制一些东西

我已经有了基本的 ReasonML React 项目设置。

html5-canvas reason reason-react bs-webapi react-hooks

2
推荐指数
1
解决办法
560
查看次数

错误:未找到或生成程序包原因反应

运行后:

bsb -init my-react-login-app -theme react
Run Code Online (Sandbox Code Playgroud)

然后,据我了解,我运行以下命令来构建项目:

$npm run build
Run Code Online (Sandbox Code Playgroud)

但是,我得到以下错误输出:

> my-react-login-app@0.1.0 build /Users/kevinmeredith/Workspace/my-react-login-app
> bsb -make-world

Package not found: resolving package reason-react in /  
File "bsconfig.json", line 1
Error: package reason-react not found or built , if it is not built
Please run 'bsb -make-world', otherwise please install it
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! my-react-login-app@0.1.0 build: `bsb -make-world`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the my-react-login-app@0.1.0 build script. …
Run Code Online (Sandbox Code Playgroud)

reason reason-react

1
推荐指数
1
解决办法
215
查看次数

ReasonReact编译时错误的`self.send`

鉴于以下内容:

$cat src/Greeting.re
let component = ReasonReact.reducerComponent("Greeting");

type action =
 | Click;

type state = {
    count: int
};

let make = (_children) => {
  ...component,
  initialState: () => {count: 0},
  reducer: (action, state) =>
    ReasonReact.Update({count: state.count + 1}),
  render: (self) => {
     let message = "Clicked " ++ string_of_int(self.state.count) ++ "x";
        <div>
          <button
            onClick={_event => self.send(Click)}
          />
          {ReasonReact.stringToElement(message)}
        </div>
  }
};
Run Code Online (Sandbox Code Playgroud)

我得到以下编译时错误:

  17 ? <div>
  18 ?   <button
  19 ?     onClick={_event => self.send(Click)}
  20 ?   />
  21 ?   {ReasonReact.stringToElement(message)} …
Run Code Online (Sandbox Code Playgroud)

reason reason-react

0
推荐指数
1
解决办法
302
查看次数