Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 实施";哑巴;mobx中的输入组件_Javascript_Reactjs_Mobx_Mobx React - Fatal编程技术网

Javascript 实施";哑巴;mobx中的输入组件

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> ); } 然而

在React应用程序中,大多数组件都应该是“哑的”,也就是说,它们不应该知道它们是应用程序的一部分,并且应该具有允许在其他应用程序中重用的通用属性

例如,我可能有一个“哑”表单组件,如下所示:

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}>
    );
});