假设我有一个React组件的层次结构,例如一天的膳食
|------- breakfast --------|
| Meal1_image.png banana |
| Meal2_image.png porridge|
|------- lunch-------------|
| Meal3_image.png toast |
| Meal4_image.png apple |
我可以将餐食添加到餐食组(例如,添加到午餐组),我可以添加更多午餐组(例如,午餐)等等。这是一个可变的组件列表,我给予用户能够使用“+”按钮添加餐食和餐食组,或者删除它们等等。
我该如何把这些保存在一个文本json中并读回它们呢?我读过关于“序列化react组件”的文章,但也许我不需要所有这些东西,我只需要保存一个json,就像
{
"breakfast": {
{"food": "banana", "image": "Meal1_image.png"},
{"food": "porridge", "image": "Meal2_image.png"},
},
"lunch" : ... and so on ...
}
有什么简单的方法可以实现这一点,或者我应该只使用https://github.com/zasource-dev/React-Serialize之类的组件序列化?
2条答案
按热度按时间l2osamch1#
如果你指的是物理保存在一个文件中,那么你需要有node js来访问你的手机或PC的文件系统,你的服务器:
如果我们讨论的是axios请求的转换,那么您需要使用下面的javascript方法JSON.stringify()进行json转换,JSON.parse()进行阅读到javascript中的转换。
如果只想在挂钩状态下变换对象,也可以这样做。
zz2j4svz2#
问题基本上太宽泛了,但无论如何,只要把你的任务分成子任务就行了。
1.设计你将要使用的数据模型。创建一个原型,试着按原样呈现它。关于你的原型--那不是有效的js对象,所以我在我的例子中稍微改变了一下。注意--对于
.map
方法,你需要使用唯一的keys。1.找出保存数据的最佳位置(状态)。您可以将其存储在某个组件中,也可以将其存储在context中,然后向其添加所有需要的方法,并将其传递给您的组件。为了简化示例,我在组件中做了所有事情。
1.添加下载/上传/解析函数,并将一切连接起来。
如果我没猜错的话-您希望每个客户端都能够下载和上传数据到客户端上的本地JSON文件,这样就没有服务器交互了。
如何测试-下载JSON文件,打开它并更改其中的一些内容,如"banana"更改为"banana111",保存,上传文件并观察更新后的值。
不知道什么是关于图像的计划,但在最坏的情况下-你可以存储图像在JSON作为base64字符串。