2016-09-06 97 views

回答

3

如果你不介意使用第三方庫,你也可以使用lodash的omit功能:

{ ..._.omit(this.props, ['className', 'id']) } 

主要優點:不像madox2的建議,你不要任意變量名稱污染的範圍只是爲了避免將某些道具傳遞給兒童組件。而且,在編寫這個答案的時候,你也沒有處理實驗性的ES.next功能。

16

可以採用拆解做好這項工作:

const { className, id, ...newProps } = this.props; // eslint-disable-line 
// `newProps` variable does not contain `className` and `id` properties 

由於這句法目前ECMAScript的提案(REST /傳播屬性),你將需要transpile代碼啓用該功能(例如,使用巴貝爾)。

+1

這真是太神奇了,但有沒有簡單的方法沒有eslint和喜歡抱怨使用這種模式的未使用的變量聲明(除了禁用此規則)? – m90

+0

@madox這是很好的,但有點需要我手動處理道具,因爲我想利用所有這些道具通過,只有排除我不需要的道具,而不是包括我需要的道具 – Ilja

+0

@ m90添加評論,該特定行禁用eslint – madox2