通过将 prop 变量分配给组件变量,它们被链接

Posted

技术标签:

【中文标题】通过将 prop 变量分配给组件变量,它们被链接【英文标题】:By assigning prop variables to component variables they are linked 【发布时间】:2020-01-20 15:45:04 【问题描述】:

我将 props 变量分配给组件变量,当我更改组件变量时,我更改了 props...

父组件:

const prova = [
    
      1: 'a'
    ,
    
      2: 'b'
    ,
    
      3: 'c'
    ,
    
      4: 'd'
    ,
    
      5: 'e'
    
]

class SearchScreen extends React.Component 
   ...
   <ScrollHorizontalTwoColumns categories=prova title="Your Categories" seeAll=true/>
   ...

子组件:

class ScrollHorizontalTwoColumns extends React.Component 

    categories1 = "";
    categories2 = "";

    constructor(props) 
      super(props);
      console.warn(this.props.categories);
      if (typeof this.props.categories === 'object' && this.props.categories.length > 0)

        this.categories1 = this.props.categories;
        this.categories2 = this.categories1.splice(0, Math.ceil(this.categories1.length / 2)) 

      
      console.warn(this.props.categories);
    

第二个警告与第一个警告不同...

【问题讨论】:

我似乎错过了您的问题/问题。 @epascarello 对象是通过引用传递的。 .splice 弄乱了他传入的数组 this.props.categories @Thomas 已经解决了。它必须与 [... this.props.categories] 一起发送 @Cookie 请添加“已解决”信息作为答案 请发布您的解决方案作为答案。我现在正在回滚您的编辑。不应将解决方案编辑到问题中。 【参考方案1】:

解决方案是:

它必须改变 this.categories1 = this.props.categories; for this.categories1 = [...this.props.categories];

【讨论】:

以上是关于通过将 prop 变量分配给组件变量,它们被链接的主要内容,如果未能解决你的问题,请参考以下文章

将组件分配给变量 Angular 4+

将 TForm 分配给一个变量 Delphi 以在其他单元中使用

分配给新变量后如何测试道具

一种将用户输入分配给变量然后跨组件共享该变量的方法

将列表元素分配给变量

如何将 Vue.js 2 组件值分配给主实例变量?