有没有前端 react 请教个问题

2021-01-15 17:12:36 +08:00
 RuiQ

背景: 不会前端,负责的项目没有前端,所以也写写前端

问题: 是 props 传值时候,值是后端返回的 格式是

{
"week": {
	"sub_value": [{
		"title": "星期一",
		"value": "1"
	}, {
		"title": "星期二",
		"value": "2"
		}]
	}
}

然后用 props 传到下个页面的时候格式变成了:

{
"week": {
	"sub_value": [{
		"title": ["星期一", "星期二"],
		"value": ["1", "2"]
	}]
}
}

其实 json 的层级比较深,选取后面格式变化的主要部分,也不知道跟层级过深是否有关系 看了下 中间没有数据处理啊 是我没找到 还是有什么潜在的规则

1209 次点击
所在节点    问与答
7 条回复
dcbryant
2021-01-15 18:03:06 +08:00
正常情况下数据结构肯定不会变,没看你的代码不好分析问题
RuiQ
2021-01-15 19:28:22 +08:00
@dcbryant 好的 谢谢 如果不是因为 props 有我未知的特性导致的 那就是我的代码处理的 那我只要一步步排查就好了
TabGre
2021-01-15 20:21:57 +08:00
一般 props 传递不会改变数据结构的,但是否可能是什么高级的第三方组件呢?
across
2021-01-15 20:26:56 +08:00
把单个 props 对象看成一个引用对象,里面值变了不会触发刷新。 只有指针变了才会重新渲染。 估计就是内部自己改了值没监测到。
hugebug
2021-01-15 21:20:29 +08:00
同意排查自己的代码 没见过这么奇怪的问题
Egg
2021-01-15 21:26:22 +08:00
可以在子父组件的 render console 一下 看下是哪里的问题 或者在子组件的 componentWillMount || getDerivedStateFromProps 这两个生命周期里面 console 一下
xiaojiqiaozhi
2021-01-15 22:10:35 +08:00
1. 看下组件外面有没有包装饰器或其他高阶组件,有可能 props 的值被高阶组件修改了。
2. 注释当前组件的所有代码,写个纯函数。分别在父组件和纯函数中打印 props 的值,打印时使用 JSON.stringify 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/745309

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX