【问题标题】:Simulate change does not work for formik's select elements模拟更改不适用于 formik 的选择元素
【发布时间】:2019-05-31 05:08:57
【问题描述】:

我正在尝试测试formik的一些select元素,但Simulate change不起作用。

而对于 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>

安装包装器:

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 截图:

上面的控制台日志截图显示,即使在模拟更改后,值也没有改变。

【问题讨论】:

    标签: javascript reactjs jestjs enzyme formik


    【解决方案1】:

    我可以通过直接使用 props.onChange 来修复它

    wrapper
          .find('SelectInput')
          .at(0)
          .props()
          .onChange({ target: { id: 1, value: 'American Sign Language', name: 'clientsData.language1_id' } })
        wrapper.update()
    

    【讨论】:

      猜你喜欢
      • 2018-10-15
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-07
      相关资源
      最近更新 更多