Ilj*_*lja 14 javascript reactjs
是否可以将道具传递给子组件,{ ..this.props }用于更简单的语法,但是排除某些道具,如className或id?
mad*_*ox2 34
您可以使用解构来完成这项工作:
const { className, id, ...newProps } = this.props; // eslint-disable-line
// `newProps` variable does not contain `className` and `id` properties
Run Code Online (Sandbox Code Playgroud)
由于此语法当前是ECMAScript提议(Rest/Spread Properties),因此您需要转换代码以启用此功能(例如,使用babel).
如果您不介意使用第三方库,您还可以使用lodash的omit功能:
{ ..._.omit(this.props, ['className', 'id']) }
Run Code Online (Sandbox Code Playgroud)
主要优点:与madox2的建议不同,您不会使用任意变量名来污染您的范围,只是为了避免将某些道具传递给子组件.此外,在撰写此答案时,您也没有处理实验性ES.next功能.