2017-07-07 36 views
2

最近,當我使用React & material-ui來創建表單時,我發現許多組件沒有'name'屬性,比如'SelectField'。所以我必須通過一種方法來獲得價值。 material-ui是否適合執行表單?如果答案是肯定的,你能給我一個完整的例子,它使用了一些組件,如'TextField','SelectField',以及如何提交它?物質友好形式?

回答

1

我可以推薦connectin材料的UI與Redux的形式:

http://redux-form.com/6.8.0/examples/material-ui/

廠只要細當你經過代表材料的UI形式組分引入從字段反應終極版

import { Field } from 'redux-form/immutable'; 
import TextField from 'material-ui/TextField'; 

<Field 
    name="username" 
    id="username" 
    type="text" 
    placeholder="Username" 
    label="Username" 
    required 
    iconName="person" 
    component={TextField} 
    /> 

然後你會有形式值存在於redux狀態。

+0

哦,太多的npm包。如果我不想安裝它,我可以有其他解決方案嗎? –

0

這實際上不是我認爲的材料 - 用戶界面特定問題。如果你使用簡單的<input>元素,你將會在同一條船上。

基本上你想要做的是當用戶做某個動作或點擊提交時獲取/設置文本框/複選框的值。 Material-ui只是讓你做漂亮,可重用和設計的組件,這樣你就不必自己寫它們。

爲了方便地使用表單,你可以從你身邊做一些額外的編碼。我也建議偉大的圖書館redux-form,但它會要求你也在你的應用中實現REDX(一個偉大的事情本身,但我不知道你的要求是什麼)。

如果想要另一個選項,那麼你可以使用https://github.com/christianalfoni/formsy-react這是管理的形式和犯規需要終極版

如果你想自己做的事情,那麼你可以從https://facebook.github.io/react/docs/forms.html使用建議,這在一般的告訴另一個偉大的和流行的庫你有控制組件。

最後一件事。不要害怕使用額外的庫和模塊。有幾十萬個模塊的全部意義在於人們使用它們=]