![](/img/trans.png)
[英](change) event does not work on select and input elements but does on checkbox Angular 6, Material 6
[英]Simulate change does not work for formik's select elements
我試圖測試一些formik的選擇元素,並且模擬更改不起作用。
而相同的模擬變化適用於formik的輸入元素。
零件:
<Field
type="text"
name={'clientsData.language1_id'}
className={this.props.classes.textField}
label="Primary Language"
select
margin="normal"
variant="outlined"
component={TextField}
InputLabelProps={{
shrink: true
}}>
}}>
{this.props.languages.map(val => (
<MenuItem key={val.id} value={val.id}>
{val.value}
</MenuItem>
))}
</Field>
Mount Wrapper:
wrapper = mount(
<Router history={hist}>
<ClientsContacts
clientsData={clientsData}
languages={languages}
gender={gender}
race={race}
genders_identified={genderIdentified}
actions={{ getDictionaryApiCall: mockGetDictionaryApiCall, getListApiCall: mockGetListApiCall }}
/>
</Router>
)
模擬更改和一些控制台日志以便更好地理解:
console.log(
wrapper
// .find('Select')
.find('input')
.at(6)
.debug()
)
wrapper
.find('input')
.at(6)
.simulate('change', { target: { value: '122344556644', name: 'clientsData.language1_id' } })
console.log(
wrapper
.find('input')
.at(6)
.props()
)
console.log的屏幕截圖:
控制台日志的屏幕截圖上方顯示的值即使在模擬更改后也未更改。
我可以通過直接使用props.onChange來修復它
wrapper
.find('SelectInput')
.at(0)
.props()
.onChange({ target: { id: 1, value: 'American Sign Language', name: 'clientsData.language1_id' } })
wrapper.update()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.