【发布时间】:2020-01-18 15:28:42
【问题描述】:
import React, { useEffect, useState } from 'react';
import PropTypes from 'prop-types';
const InputComponent = ({ item, data }) => {
const [value, setValue] = useState('');
// Binding values for Edit based on unique Key
useEffect(() => {
if (data && data[item.field] && data[item.field] !== 'undefined') {
setValue(data[item.field]);
}
}, [data,item.field]);
//On change setting state
const setState = e => {
setValue(e.target.value);
};
return (
<div className='Input-Containter' data-test='InputBox-tbl-evt'>
<input
data-test='input-ele'
type='text'
value={value}
onChange={e => setState(e)}
/>
</div>
);
};
InputComponent.propTypes = {
item: PropTypes.object,
data: PropTypes.object
};
InputComponent.defaultProps = {
data: {
id: '1',
name: 'd'
},
item:{
field: 'id',
}
};
export default InputComponent;
谁能帮助我如何在 useEffect 中测试 setValue()
-> 更新了这个组件的完整代码
-> 组件将获取一些数据以将值绑定到输入元素中并在同一
我们也可以在其中编辑值的组件。
【问题讨论】:
-
你不应该走这条路。这是“测试实施”陷阱的例子,这样的事情不会给你任何价值。如果没有更完整的代码,我无法提供 sn-p 但一般来说:您通过提供一些道具/模拟事件来触发一些更改,然后验证哪些组件返回(在您的情况下 - 验证依赖于
value的任何内容都已更改)跨度> -
@skyboyer:我已经添加了完整的代码。如果您有空闲时间,请帮助我。
标签: reactjs jestjs enzyme react-hooks