JsFiddle: https://jsfiddle.net/69z2wepo/9956/React wybierz onChange nie działa
Wracam do wybierz element w funkcji renderowania w moim kodu react.js
.
Ale gdy zmieniam wartość select
, funkcja w onChange
nie jest wyzwalana.
var Hello = React.createClass({
render: function() {
return <select id="data-type" onChange={changeDataType()}>
<option selected="selected" value="user" data-type="enum">User</option>
<option value="HQ center" data-type="text">HQ Center</option>
<option value="business unit" data-type="boolean">Business Unit</option>
<option value="note" data-type="date">Try on </option>
<option value="con" data-type="number">Con</option>
</select>
}
});
React.render(<Hello/>, document.getElementById('container'));
function changeDataType() {
console.log("entered");
}
Ta funkcja jest wyzwalana tylko raz, gdy wybrana jest załadowana, a następnie, gdy zmienię wartość, nie zostanie ona wywołana.
jest coś asynchronizować w tym kodzie? Wygląda na to, że zdefiniowanie 'changeDataType' po ustawieniu go jako detektora zdarzeń jest złym pomysłem. Prawdopodobnie powinien przenieść tę metodę do obiektu Hello (obok metody renderowania) i użyć 'this.changeDataType'. – pherris
Dzięki temu zadziałało. Przeniesiono go również pod metodę renderowania. –
Zamiast używać wybranego atrybutu znacznika opcji. Powinieneś użyć przekazać wybraną wartość do rekwizytów wybranych, aby łatwiej manipulować wartością. https://facebook.github.io/react/docs/forms.html#why-select-value –