Jestem w trochę dziwnej sytuacji, mam do czynienia z walutą w mojej aplikacji. Po stronie modelu zapisuję walutę jako centy przed wysłaniem na serwer, ponieważ nie chcę zajmować się dziesiętnymi punktami po stronie serwera. Jednak w widoku chcę wyświetlać normalną walutę, a nie centy.tłumaczenie centów i dolarów w html wejścia w React
Więc mam tego pola wprowadzania gdzie Biorę dane z dolarów i zmienić go centów:
<input name="balance" type="number" step="0.01" min="0" placeholder="Balance in cents" onChange={this.handleUpdate} value={this.props.user.balance/100)} />
A gdy istnieje zmiana wartości wejściowej, zmieniam ją z powrotem do centów przed wysłaniem upstream:
handleUpdate: function(e) {
var value = e.target.value;
// changing it back from cents to dollars
value = parseFloat(value) * 100;
// save back to the parent component managing the prop
this.props.onUserUpdate(value);
}
To stawia mnie w rodzaju impasu, nie ma dla mnie sposób, aby wprowadzić punkt dziesiętny „” Pozwól mi zademonstrować:
33
w polu tekstowym -> staje3300
w państwie macierzystym -> wraca jako33
w podporze Component - dobre33.3
w polu tekstowym -> staje3330
w państwie macierzystym -> wraca jako33.3
w podporze Component - wszystkim dobry33.
w polu tekstowym -> staje3300
w państwie macierzystym -> wraca jako33
w podpory komponentu - to jest problem
Jak widać w przypadku # 3, gdy użytkownik najpierw wprowadza "." to nie tłumaczy z powrotem na tę samą liczbę z "."
Ponieważ jest to kontrolowane wejście, w zasadzie nie można pisać "."
Próbowałem za pomocą niekontrolowanego elementu z defaultValue
, ale ilość prop nie jest gotowy czas składnik staje się więc to tylko pusty
Very nice! Thinking React wymaga pewnych korekt ... Dzięki! – Michael
Twój przykład działa z React 0.14.0 https://jsfiddle.net/7h5o97wL/, ale nie działa React 15.4.2 https://jsfiddle.net/69z2wepo/73775/ –
Oto mój problem https://github.com/facebook/react/issues/7253 –