私はredux-formを使ってReactコンポーネントを作成し、最初のフィールドでautoFocusを探しています。フィールドは、オブジェクトをループし、そのオブジェクトの各項目のフィールドを作成することによって作成されます。 JSFでautoFocusを使用すると、フォームの最後のフィールドにautoFocusが設定されます(これは意味があります)。ループを使用して作成されたredux-formの最初のフィールドでオートフォーカスできますか?
私はフォームの最初のフィールドにどのようにautoFocusできるのか知っていますか?ここで
は私のコンポーネントです:事前に
import React, { Component } from 'react';
import { Field, reduxForm } from 'redux-form';
class BalanceForm extends Component {
constructor(props) {
super(props);
this.submitForm = this.submitForm.bind(this);
this.cancel = this.cancel.bind(this);
}
cancel() {
//not relevant
}
submitForm(e, values) {
//not relevant
}
render() {
return (
<div>
{this.props.balanceFormVisible &&
<div className="modal-background">
<div className="modal">
<form onSubmit={this.submitForm}>
{Object.keys(this.props.accounts).map((key) => {
return (
this.props.accounts[key].visible &&
<div key={this.props.accounts[key].name}>
<label className="form-label" htmlFor={this.props.accounts[key].name}>
{this.props.accounts[key].display}
</label>
<Field
name={this.props.accounts[key].name}
component="input"
type="number"
placeholder=""
autoFocus
/>
</div>
)
})}
<button type="submit">Submit</button>
<button onClick={ this.cancel } className="cancelbtn" >Cancel</button>
</form>
</div>
</div>
}
</div>
);
}
}
BalanceForm = reduxForm({form: 'balance'})(BalanceForm)
export default BalanceForm;
感謝:)
これは短くていいですか?フィールドコンポーネントコードを複製する必要はありません。 <フィールド 名= {this.props.accounts [キー] .nameの} 成分= "入力" タイプ= "番号" プレースホルダ= "" {(I === 0):このような何か? autoFocus: ""} /> – TariqN
私はそれを試みましたが、コンパイルしませんでした – Sawdust
とにかく、あなたの解決策はうまく見えます。 (Y) – TariqN