无法在IE边缘浏览器中将JSON字符串化数据传递给Lit元素子组件

无法在IE边缘浏览器中将JSON字符串化数据传递给Lit元素子组件,json,microsoft-edge,web-component,lit-element,Json,Microsoft Edge,Web Component,Lit Element,我试图将我的JSON数据(JSON stringify数据)传递给Litelement组件中的子组件。 它是用铬做的。但在IE边缘浏览器中未定义 <parent-comp> <child-comp myJsonData=`${JSON.stringify({ code: '123',name: 'xyz'})}`> </child-comp> </parent-comp> 将此myJsonData用于更新的子公司生命周

我试图将我的JSON数据(JSON stringify数据)传递给Litelement组件中的子组件。 它是用铬做的。但在IE边缘浏览器中未定义

  <parent-comp>
    <child-comp myJsonData=`${JSON.stringify({ code: '123',name: 'xyz'})}`>
    </child-comp>
  </parent-comp>


将此myJsonData用于更新的子公司生命周期。但是在IE Edge中获取未定义的值。

LitElement可以将值作为属性或属性传递。当您希望值在HTML中作为字符串传递,但要对结果进行序列化和解析需要付出开销时,请使用属性。传递对象时使用属性

由于
JSON.stringify
的问题,这可能不起作用,但即使它起作用,您的输出HTML也会:


现在
子comp
的任务是将字符串
“{code:'123',name:'xyz'}”
解析回一个对象

改为使用属性前缀:

const data = { code: '123', name: 'xyz'};
retrun html`
  <parent-comp>
    <child-comp .myJsonData=${data}>
    </child-comp>
  </parent-comp>`
const data={code:'123',name:'xyz'};
重新运行html`
`
现在没有stringify/parse工作,Lit直接设置属性(类似于this.shadowRoot.querySelector('child-comp')。myJsonData=data)


如果您使用的是TypeScript装饰程序,您可以在属性上使用
@property({attribute:false})
,当您错过
前缀时,会收到警告或错误。

如果您只是尝试在IE和Edge browser中使用JSON.stringify,那么它对您是否有效?若可行,则问题可能与子公司或母公司有关。我建议您提供一个示例代码,我们可以尝试使用Edge和IE浏览器运行该代码来检查结果。这有助于正确理解问题。@Deepak MSFT为edge找到了解决方案。如果我使用.myJsonData=${JSON.stringify({code:'123',name:'xyz'}}),那么它工作得很好。。通过将dot与PropertyTanks预先放置在一起,以共享问题的解决方案。我建议你将你的答案作为这个帖子的答案,并尝试在48小时后将你自己的答案标记为这个问题的可接受答案。它可以在未来帮助其他社区成员解决类似的问题。感谢您的理解,我已经从这条线索中得到了解决方案,请将其作为答案发布。不作为评论。