gpt4 book ai didi

reason - ReasonReact reducer 中的 Action 类型错误

转载 作者:行者123 更新时间:2023-12-01 12:09:12 24 4
gpt4 key购买 nike

我正在尝试创建一个简单的待办事项应用程序,这是一个输入组件,我需要一个 reducer 来更新输入的状态。此代码抛出错误 - This pattern matches values of type action but a pattern was expected that matches values of type unit => string

出于某种原因,它期望 actionunit => string 而我不知道为什么。谁能帮忙?

type state = string;
type action =
| InputChange(string);

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

let make = (~onSubmit, _children) => {
...component,
initialState: () => "",
reducer: action =>
switch (action) {
| InputChange(text) => ReasonReact.Update(text)
},
render: ({state: todo, send}) =>
<input
className="input"
value=todo
type_="text"
placeholder="What do you want todo"
onChange={e => send(ReactEvent.Form.target(e)##value)}
onKeyDown={
e =>
if (ReactEvent.Keyboard.key(e) == "Enter") {
onSubmit(todo);
send(() => "");
}
}
/>,
};

最佳答案

action 的类型是通过在 render 中使用 send 来推断的,您将它传递给 () => ""unit => string 类型的函数。它应该是 send(InputChange(""))

您还缺少 reducer 上的 state 参数。它应该是 reducer: (action, state) => ...reducer: (action, _state) => ... 以避免未使用的警告,因为你没有使用它。

关于reason - ReasonReact reducer 中的 Action 类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53637117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com