V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
RuiQ
V2EX  ›  问与答

有没有前端 react 请教个问题

  •  
  •   RuiQ · 2021-01-15 17:12:36 +08:00 · 1176 次点击
    这是一个创建于 1168 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    7 条回复    2021-01-15 22:10:35 +08:00
    dcbryant
        1
    dcbryant  
       2021-01-15 18:03:06 +08:00   ❤️ 1
    正常情况下数据结构肯定不会变,没看你的代码不好分析问题
    RuiQ
        2
    RuiQ  
    OP
       2021-01-15 19:28:22 +08:00
    @dcbryant 好的 谢谢 如果不是因为 props 有我未知的特性导致的 那就是我的代码处理的 那我只要一步步排查就好了
    TabGre
        3
    TabGre  
       2021-01-15 20:21:57 +08:00 via iPhone
    一般 props 传递不会改变数据结构的,但是否可能是什么高级的第三方组件呢?
    across
        4
    across  
       2021-01-15 20:26:56 +08:00 via iPhone
    把单个 props 对象看成一个引用对象,里面值变了不会触发刷新。 只有指针变了才会重新渲染。 估计就是内部自己改了值没监测到。
    hugebug
        5
    hugebug  
       2021-01-15 21:20:29 +08:00 via Android
    同意排查自己的代码 没见过这么奇怪的问题
    Egg
        6
    Egg  
       2021-01-15 21:26:22 +08:00
    可以在子父组件的 render console 一下 看下是哪里的问题 或者在子组件的 componentWillMount || getDerivedStateFromProps 这两个生命周期里面 console 一下
    xiaojiqiaozhi
        7
    xiaojiqiaozhi  
       2021-01-15 22:10:35 +08:00 via Android
    1. 看下组件外面有没有包装饰器或其他高阶组件,有可能 props 的值被高阶组件修改了。
    2. 注释当前组件的所有代码,写个纯函数。分别在父组件和纯函数中打印 props 的值,打印时使用 JSON.stringify 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1036 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:22 · PVG 06:22 · LAX 15:22 · JFK 18:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.