Reactjs 没有useState的MobxStateTree?
例如,谁能向我解释如何在mobx中制作模型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
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?