Je suis confus sur la façon d'accéder <input>
de la valeur lors de l'utilisation d' mount
. Voici ce que j'ai comme mon test:
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();
});
La console imprime undefined
. Mais si j'ai un peu modifier le code, il fonctionne:
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();
});
Sauf, bien sûr, l' input.simulate
ligne échoue depuis que je suis à l'aide d' render
maintenant. - Je besoin pour fonctionner correctement. Comment puis-je résoudre ce problème?
EDIT:
Je dois mentionner, <EditableText />
n'est pas contrôlée d'un composant. Mais quand je passe la defaultValue
en <input />
, il semble pour définir la valeur. Le deuxième bloc de code ci-dessus ne imprimer la valeur, et même si j'ai inspecter l'élément d'entrée en Chrome et tapez $0.value
dans la console, il montre la valeur attendue.