背景: 不会前端,负责的项目没有前端,所以也写写前端
问题: 是 props 传值时候,值是后端返回的 格式是
{
"week": {
"sub_value": [{
"title": "星期一",
"value": "1"
}, {
"title": "星期二",
"value": "2"
}]
}
}
然后用 props 传到下个页面的时候格式变成了:
{
"week": {
"sub_value": [{
"title": ["星期一", "星期二"],
"value": ["1", "2"]
}]
}
}
其实 json 的层级比较深,选取后面格式变化的主要部分,也不知道跟层级过深是否有关系 看了下 中间没有数据处理啊 是我没找到 还是有什么潜在的规则
1
dcbryant 2021-01-15 18:03:06 +08:00 1
正常情况下数据结构肯定不会变,没看你的代码不好分析问题
|
2
RuiQ OP @dcbryant 好的 谢谢 如果不是因为 props 有我未知的特性导致的 那就是我的代码处理的 那我只要一步步排查就好了
|
3
TabGre 2021-01-15 20:21:57 +08:00 via iPhone
一般 props 传递不会改变数据结构的,但是否可能是什么高级的第三方组件呢?
|
4
across 2021-01-15 20:26:56 +08:00 via iPhone
把单个 props 对象看成一个引用对象,里面值变了不会触发刷新。 只有指针变了才会重新渲染。 估计就是内部自己改了值没监测到。
|
5
hugebug 2021-01-15 21:20:29 +08:00 via Android
同意排查自己的代码 没见过这么奇怪的问题
|
6
Egg 2021-01-15 21:26:22 +08:00
可以在子父组件的 render console 一下 看下是哪里的问题 或者在子组件的 componentWillMount || getDerivedStateFromProps 这两个生命周期里面 console 一下
|
7
xiaojiqiaozhi 2021-01-15 22:10:35 +08:00 via Android
1. 看下组件外面有没有包装饰器或其他高阶组件,有可能 props 的值被高阶组件修改了。
2. 注释当前组件的所有代码,写个纯函数。分别在父组件和纯函数中打印 props 的值,打印时使用 JSON.stringify 。 |