不了解使用三点符号的Javascript语法

时间:2019-04-07 00:36:14

标签: javascript reactjs ecmascript-6

我正在学习Java语言以供工作。具体来说,我正在学习一个React / Redux Web应用程序,并且在整个应用程序中都无法使用三点符号表示法。我已经用谷歌搜索了三点符号的含义,它看起来像是点差运算符。但是据我了解,散布运算符只能用于数组等可迭代对象。我看不到可迭代的参数。下面的示例代码是应用程序正在使用的示例。在示例中,我们有2个反应成分AppInputSomeObjectSomeObject在render方法中使用带有参数的AppInput调用,该参数已分配给AppInput中的props。但是我不了解它是如何做到的。有人可以解释下面的代码中发生了什么吗?谢谢

export default class AppInput extends React.Component {
  static propTypes = {
    className: PropTypes.string,
    disabled: PropTypes.bool,
    value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),
    onChange: PropTypes.func,
    inputRef: PropTypes.func,
    type: PropTypes.string,
    highlighted: PropTypes.bool
  }
  .....
  constructor(props) {
    super(props);
    this.state = { value: sanitizeValue(props.value) };
  }
  .....
}


export class SomeObject extends React.Component<Props, State> {    
    .....
    return (
      <div className="generic-table-row">
        <div className="generic-table-cells">
          <AppInput
            {...{
              value: someVal,
              onChange: this.handleChange,
              className: 'someOtherObj',
              disabled: !pushMode
            }}
          />
        </div>
        {deleteMode && deleteMessage}
      </div>
    );
  }
}

1 个答案:

答案 0 :(得分:1)

...所做的全部工作就是将它所引用的对象(匿名对象)的内容散布开-因此将是value={someVal}等。

相关问题