我正在構建一個顯示一系列通用輸入字段的組件。後備存儲器使用鍵 - 值對的一個簡單的數組來管理數據:如何在回調中獲取對目標元素的引用
[
{fieldkey: 'Signs and Symptoms', value:'fever, rash'},
{fieldkey: 'NotFeelingWell', value:'false'},
{fieldkey: 'ReAdmission', value:'true'},
{fieldkey: 'DateOfEvent', value:'12/31/1999'}
]
爲了消除了大量的樣板代碼相關的數據綁定,從而產生的HTML標記,當組件使用這些相同的密鑰(請參閱'data-fieldname'屬性)。
var Fields = React.createClass({
handleOnChange:function(e){
Actions.updateField({key:e.target.attributes['data-fieldname'].value, value:e.target.value})
},
setValue:function(){
var ref = //get a reference to the DOM element that triggered this call
ref.value = this.props.form.fields[ref.attributes['data-fieldname']]
},
render:function(){
return (<div className="row">
<Input data-fieldname="Signs and Symptoms" type="text" label='Notes' defaultValue="Enter text" onChange={this.handleOnChange} value={this.setValue()} />
<Input data-fieldname="NotFeelingWell" type="checkbox" label="Not Feeling Well" onChange={this.handleOnChange} value={this.setValue()} />
<Input data-fieldname="ReAdmission" type="checkbox" label="Not Feeling Great" onChange={this.handleOnChange} value={this.setValue()} />
<Input data-fieldname="DateOfEvent" type="text" label="Date Of Event" onChange={this.handleOnChange} value={this.setValue()} />
</div>)
}
})
我的目標是使用相同的兩個函數寫入/從存儲器讀取所有輸入和不重複的代碼(即我不想一個裁判聲明添加到每個輸入,它複製已存儲在'data-fieldname'中的密鑰)事情在附加到'onChange'事件的回調上游泳。但是,我不確定如何在setValue函數中獲取對所討論的DOM節點的引用。
在此先感謝
目前'this.setValue()'被執行時,與該呼叫相關聯的部件/元件甚至不存在尚未。 –
點好了。你能否提出一種避免密鑰重複的替代方法? –
將信息存儲爲對象數組(例如)並動態生成元素? –