<input>
を使用するときに値にアクセスする方法について混乱していますmount
。これが私のテストとして得たものです:
it('cancels changes when user presses esc', done => {
const wrapper = mount(<EditableText defaultValue="Hello" />);
const input = wrapper.find('input');
console.log(input.render().attr('value'));
input.simulate('focus');
done();
});
コンソールに が出力されundefined
ます。しかし、コードを少し変更すると、次のように機能します。
it('cancels changes when user presses esc', done => {
const wrapper = render(<EditableText defaultValue="Hello" />);
const input = wrapper.find('input');
console.log(input.val());
input.simulate('focus');
done();
});
もちろん、input.simulate
私がrender
今使っているので、回線は失敗します。正しく機能するには両方が必要です。これを修正するにはどうすればよいですか?
編集:
私が言及する必要があるの<EditableText />
は、制御されたコンポーネントではありません。しかし、に渡すと、値が設定されているようですdefaultValue
。<input />
上記の 2 番目のコード ブロックは値を出力します。同様に、Chrome で入力要素を調べて$0.value
コンソールに入力すると、期待値が表示されます。