use*_*843 1 javascript reactjs react-bootstrap spread-syntax
我正在阅读有关 React 中的unknown-prop警告,特别是因为我正在使用react-bootstrap包并在那里偶然发现了它们。
我读过:“为了解决这个问题,复合组件应该“消耗”任何用于复合组件而不是用于子组件的道具”,在这里:
https://gist.github.com/jimfb/d99e0678e9da715ccf6454961ef04d1b
并给出了一个示例,说明如何使用展开运算符将变量从 props 中取出,并将剩余的 props 放入变量中。
示例代码:
function MyDiv(props) {
const { layout, ...rest } = props
if (layout === 'horizontal') {
return <div {...rest} style={getHorizontalStyle()} />
} else {
return <div {...rest} style={getVerticalStyle()} />
}
}
Run Code Online (Sandbox Code Playgroud)
问题在于:在给出的示例中,我不明白此代码中的“...rest”代表什么。我知道“...”=展开语法,但是“rest”这个词从哪里来,它代表什么?
这是对象剩余语法,它从所有未显式解构的属性创建一个对象。
const obj = { a: 1, b: 2, c: 3};
const { a, ...everythingElse } = obj;
console.log(a);
console.log(everythingElse);Run Code Online (Sandbox Code Playgroud)
它相当于数组剩余语法:
const arr = [1, 2, 3];
const [a, ...rest] = arr;
console.log(a);
console.log(rest);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
483 次 |
| 最近记录: |