Javascript 实施";哑巴;mobx中的输入组件
在React应用程序中,大多数组件都应该是“哑的”,也就是说,它们不应该知道它们是应用程序的一部分,并且应该具有允许在其他应用程序中重用的通用属性 例如,我可能有一个“哑”表单组件,如下所示:Javascript 实施";哑巴;mobx中的输入组件,javascript,reactjs,mobx,mobx-react,Javascript,Reactjs,Mobx,Mobx React,在React应用程序中,大多数组件都应该是“哑的”,也就是说,它们不应该知道它们是应用程序的一部分,并且应该具有允许在其他应用程序中重用的通用属性 例如,我可能有一个“哑”表单组件,如下所示: function MyForm(props){ return ( <form> <input type="number" value={props.value}/> </form> ); } 然而
function MyForm(props){
return (
<form>
<input type="number" value={props.value}/>
</form>
);
}
然而,我的表单组件也需要能够更新状态,因为它是一个输入。然而,如果
MyForm
要保持“哑巴”,它就不能访问存储,也不能给它的道具赋值,因为这在mobx之外是没有意义的。那么,我如何在mobx中创建一个能够更新存储状态的“哑”输入组件?调用从其父级传递的更新函数?这意味着为我可能希望组件更新的每个状态创建一个更新函数,尽管创建一个函数并将名称字段和值作为参数传递,就像在普通表单中一样,示例你能详细说明一下吗?你把这个问题弄得如此戏剧化,只有一种方法,即可重用组件(你称之为哑组件)应接收来自父级的回调函数,并在需要更改状态时调用该函数。尽管state是本地的,Mobx,Redux…调用从其父级传递的更新函数?这意味着为我可能希望组件更新的每个状态创建更新函数,尽管创建一个函数并将名称字段和值作为参数传递,就像在普通表单中一样,示例你能详细说明一下吗?你把这个问题弄得如此戏剧化,只有一种方法,即可重用组件(你称之为哑组件)应接收来自父级的回调函数,并在需要更改状态时调用该函数。虽然州是本地的,但Mobx,Redux。。。
import { observer } from "mobx-react"
import React from "react";
import myStore from "./store";
import MyForm from "./myForm";
const MyApp = observer((props) => {
const store = React.useContext(myStore);
return (
<MyForm value={store.formValue}>
);
});