MemberForm
- это функция, которая не будет иметь доступа к this
со ссылкой на компонент класса в React.Вы либо передаете состояние в качестве аргумента этой функции, либо определяете его как функцию без использования функции стрелки, так что вы можете вызывать ее с явным this
Первый подход
var html = MemberForm(this.props.formObj.count,dept,desg, this.state.errorClass);
export const MemberForm=(i,dept,desg, errorClass)=>{
let buffer=[];
for (let j=1;j<=i;j++){
buffer.push((<div className="card" key={j}>
<header className="card-header">
<p className="card-header-title">Member Detail-{j}</p>
</header>
<div className="card-content">
<div className="field">
<label className="label">Name</label>
<div className="control">
<input name={"name"+j} className={"input "+ (errorClass["name"+j])} type="text" placeholder="Name"/>
</div>
<p className="help is-danger"></p>
</div>
<div className="field">
<label className="label">Email</label>
<div className="control">
<input name={"email"+j} className={"input "+ (errorClass["email"+j])} type="email" placeholder="Email"/>
</div>
<p className="help is-danger"></p>
</div>
<div className="field">
<label className="label">Contact</label>
<div className="control">
<input name={"contact"+j} className={"input "+ (errorClass["contact"+j])} type="tel" placeholder="Contact"/>
</div>
<p className="help is-danger"></p>
</div>
<div className="field">
<label className="label">Select Gender</label>
<div className="control">
<div className={"select " + (errorClass["gender" + j])}>
<select name={"gender" + j}><option value='' hidden>Select Gender</option>
<option value="m">Male</option>
<option value="f">Female</option>
</select>
</div>
</div>
<p className="help is-danger"></p>
</div>
<div className="field">
<label className="label">Select Designation</label>
<div className="control">
<div className={"select "+ (errorClass["designation"+j])}>
<select name={"designation"+j}><option value='' hidden>Select Designation</option>
{desg}
</select>
</div>
</div>
<p className="help is-danger"></p>
</div>
<div className="field">
<label className="label">Select Department</label>
<div className="control">
<div className={"select "+ (errorClass["department"+j])}>
<select name={"department"+j}><option value='' hidden>Select Department</option>
{dept}
</select>
</div>
</div>
<p className="help is-danger"></p>
</div>
</div > </div> ));
}
return buffer;
}
Второй подход
export function MemberForm(i,dept,desg) {
и использование его как
var html = MemberForm.call(this, this.props.formObj.count,dept,desg, this.state.errorClass);