2016-05-17 61 views
0

我正在使用材質用戶界面的自動填充組件,並面臨顯示值而不是文本元素的問題。我使用以下格式作爲我的數據源:下拉菜單中的材質UI自動完成結果文本

[{value: 'someValue', text: 'My Text'}, {value: 'someOtherValue', text: 'Some other Text'}] 

當用戶進入它正確找到匹配結果的查詢,但在下拉本身顯示值而不是文本。

用戶搜索 「我的」:

結果:

[someValue] 

我想要什麼:

[My Text] 

它實際上似乎違反直覺我的方式它現在工作。

材料-UI /自動完成/ AutoComplete.js [行346-354]

當我更改組件的源代碼從:

requestsList.push({ 
    text: item.text, 
    value: _react2.default.createElement(_MenuItem2.default, { 
        innerDivStyle: styles.innerDiv, 
        primaryText: item.value, 
        disableFocusRipple: disableFocusRipple, 
        key: index 
       }) 
       }); 

requestsList.push({ 
    text: item.text, 
    value: _react2.default.createElement(_MenuItem2.default, { 
        innerDivStyle: styles.innerDiv, 
        primaryText: item.text, 
        disableFocusRipple: disableFocusRipple, 
        key: index 
       }) 
       }); 

它工作,因爲我需要它。

我找不到任何有關此問題的公開問題。我只是做錯了嗎?

最佳 馬特

+0

這就是它的工作方式..爲什麼不把你的數據源映射到一個「有效」的?示例'''{value:'我的文本',文本:'我的文本',internalValue:'someValue'}''' –

+0

是的,我可以這樣做 - 但我想知道什麼是'價值'和'文本'無論如何,只要給他們相同的價值就可以使用。我可以簡單地使用一個簡單的數組:['我的文本1','我的文本2']。 你能給我一個例子/ useCase的{值和文本}正確使用嗎? –

回答

2

所以,基本上這是每個屬性的含義:

文本:一旦你選擇的選項之一是會顯示在輸入屬性。

value將會在popover內顯示每個選項的屬性。它可以是textnode

我同意你關於在文檔中缺少關於這些屬性的解釋,但我們可以看到它們在示例中使用,主要在第二部分(數據源)中。 PR的歡迎..

他們有2個不同的屬性,因爲很多時候用戶需要顯示不同的值,大多數(如果不是全部)庫支持它。可能有一個默認屬性,它可以滿足這兩種需求,以防萬一其中一個沒有價值,但目前還沒有,如果你想要或創建一個PR,你甚至可以建議它。

希望我能幫上忙。

+1

很好的解釋。謝謝澄清! –

相關問題