onChangeText在组件外部传递onChangeText参数时不起作用



这是我第一次做测试,但我遇到了麻烦,onChangeText不改变texttinput组件的值

const Example = ({onChangeText, value}) => {
return (<TextInput testID={'input'} onChangeText={onChangeText} value={value} />)
}
test('onChangeText', () => {
const onChangeText = jest.fn()
const value = 'test input'
const { getByTestId } = render(
<Example onChangeText={onChangeText} value={value} />
);
const input = getByTestId('input')
fireEvent.changeText(input, 'uno');
expect(input.props.value).toBe('uno');
});

获得的测试值保持'测试输入'不更改为'uno'

如果我们提供onChangeText道具,我们如何使onChangeText在测试中改变TextInput值的值?

组件接收输入值es props,我假设有一些输入正在使用该值。

因此,这意味着您的组件是不受控制的

。在这种情况下,你的测试没有通过也没关系。这不是库的问题,而是代码的问题。 https://github.com/callstack/react-native-testing-library/issues/978

https://reactjs.org/docs/uncontrolled-components.html: ~:文本= % 20 % % 20 % 20控制组件2 c % 20表单,表单% 20值% 20从% 20 % 20 dom。

您可以在这里阅读更多关于受控和非受控组件的信息。

最新更新