我正在学习Java语言以供工作。具体来说,我正在学习一个React / Redux Web应用程序,并且在整个应用程序中都无法使用三点符号表示法。我已经用谷歌搜索了三点符号的含义,它看起来像是点差运算符。但是据我了解,散布运算符只能用于数组等可迭代对象。我看不到可迭代的参数。下面的示例代码是应用程序正在使用的示例。在示例中,我们有2个反应成分AppInput
和SomeObject
。 SomeObject
在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>
);
}
}
答案 0 :(得分:1)
...
所做的全部工作就是将它所引用的对象(匿名对象)的内容散布开-因此将是value={someVal}
等。