Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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
Reactjs 没有useState的MobxStateTree?_Reactjs_Mobx_Mobx State Tree - Fatal编程技术网

Reactjs 没有useState的MobxStateTree?

Reactjs 没有useState的MobxStateTree?,reactjs,mobx,mobx-state-tree,Reactjs,Mobx,Mobx State Tree,例如,谁能向我解释如何在mobx中制作模型 const ListsStore = types.model('Lists', { lists: types.array(types.model('List', { title: '', desc: '', })) }) 现在我想在我的React组件中调用这个数组,并在列表中添加新的列表,但我还想在模型中保存当前列表的输入数据 例如: const { title, desc } = useRoot.ListsStore

例如,谁能向我解释如何在mobx中制作模型

const ListsStore = types.model('Lists', {

   lists: types.array(types.model('List', {
   title: '',
   desc: '',

   }))
})
现在我想在我的React组件中调用这个数组,并在列表中添加新的列表,但我还想在模型中保存当前列表的输入数据

例如:

const { title, desc } = useRoot.ListsStore

    <input type='text' value={title} />
    <input type='text' value={desc} />
const{title,desc}=useRoot.ListsStore
现在,为了保存输入的值,我将其保存在组件中的useState中,然后将其发送到数组,但我希望将状态直接保存在mobx中

我现在如何在组件中实现它

    const { sendToList } = useRoot.ListsStore
    const [title, setTitle] = useState('')
    const [desc, setDesc] = useState('')
    
        <input type='text' value={title} onChange=(event => setTitle(event.target.value)) />
        <input type='text' value={desc}  onChange=(event => setDesc(event.target.value)/>

  <button onClick=(() => sendToList({
    title,
     desc
  }) > 
   Send 
</button>
const{sendToList}=useRoot.ListsStore
const[title,setTitle]=useState(“”)
常量[desc,setDesc]=useState(“”)
setTitle(event.target.value))/>
setDesc(event.target.value)/>
发送列表({
标题
描述
}) > 
发送

注意:抱歉语法用法翻译

您可以将嵌套的
列表
模型分解为一个单独的变量,并向其中添加
操作
,以更改
标题
描述
,并直接在React组件中使用这些操作

示例

const List=类型
.model(“列表”{
标题:“,
描述:“
})
.行动((自我)=>({
标题(标题){
self.title=标题;
},
设置描述(描述){
self.desc=desc;
}
}));
const ListStore=types.model(“列表”{
列表:类型.数组(列表)
});
const listStore=listStore.create({
清单:[
{标题:“foo”,描述:“bar”},
{标题:“baz”,描述:“quz”}
]
});
导出默认观察者(函数App(){
返回(
{listStore.lists.map((list,i)=>(
list.setTitle(event.target.value)}
/>
list.setDesc(event.target.value)}
/>
))}
);
});

您可以将嵌套的
列表
模型分解为一个单独的变量,并向其中添加
操作
,以更改
标题
描述
,并直接在React组件中使用这些操作

示例

const List=类型
.model(“列表”{
标题:“,
描述:“
})
.行动((自我)=>({
标题(标题){
self.title=标题;
},
设置描述(描述){
self.desc=desc;
}
}));
const ListStore=types.model(“列表”{
列表:类型.数组(列表)
});
const listStore=listStore.create({
清单:[
{标题:“foo”,描述:“bar”},
{标题:“baz”,描述:“quz”}
]
});
导出默认观察者(函数App(){
返回(
{listStore.lists.map((list,i)=>(
list.setTitle(event.target.value)}
/>
list.setDesc(event.target.value)}
/>
))}
);
});

如果您希望使用MobX而不是常规的
useState
钩子来处理本地状态,那么可以使用钩子。或者您的意思是希望将输入值更改直接存储在
liststore
中?是的,我希望直接存储在liststore中如果您希望使用MobX而不是常规的
useState
钩子来处理本地状态,可以使用钩子。或者您的意思是希望输入值更改直接存储在您的
列表存储中
?是的,我希望直接存储在列表存储中,但是现在如何使用模型中的setTitle和setDesc?好的,但是现在如何使用模型中的setTitle和setDesc?