我建立具有LoginForm的和重置表單形式簡單的SPA應用。如果我在React中重複自己,我應該創建一個組件嗎?
這兩個組件的共享方法 getInputFields()
和handleSubmit()
這裏是我的代碼示例:
import React from 'react';
import InputField from './InputField';
import SubmitButton from './SubmitButton';
class ResetForm extends React.Component {
constructor(props) {
super(props);
this.handleSubmit = this.handleSubmit.bind(this);
this.getInputFields = this.getInputFields.bind(this);
}
handleSubmit(e) {
e.preventDefault();
console.log('submitted');
}
getInputFields() {
return [
{ type: 'email', placeholder: 'Email' }
]
}
render() {
return (
<form onSubmit={ this.handleSubmit }>
{
this.getInputFields()
.map((field) => <InputField type={ field.type } placeholder={ field.placeholder } />)
}
<SubmitButton />
</form>
)
}
}
export default ResetForm;
而且我LoginForm的只有不同的數據(內getInputFields()
)
如果我再說一遍,我是否應該自動考慮製作一個新組件?例如在這種情況下是<Form>
組件並將getInputFields()
的值作爲通道傳遞給Form?
可能會有幫助https://twitter.com/dan_abramov/status/793127800769224704?lang=en – Abhishek