2016-06-28 70 views
6

被按下多textInput當進,什麼時候用戶按回車鍵,我想達到的目標:如何防止新的生產線在反應母語

  • 保持的TextInput焦點,當用戶按回車鍵。
  • 防止添加新行。

我沒有看到任何道具可以做到,任何人都有想法?

react-native版本是0.28+,需要支持ios和android。

+1

@Ctc這不是重複的。你的問題是針對網絡的,而不是原生的。 –

+1

具有相同的確切問題。清理textinput在文本變化回調中的價值不僅會導致編輯器本身閃爍,而且還會改變提示等等,所以很明顯會發生某些事情 - 這不是一種好的用戶體驗。仍在尋找更好的解決方案。這不是一個DUP。 – Moonwalker

+0

你有沒有找到這個解決方案?我也想阻止一個變化。 – Noitidart

回答

-8

這裏是例如:

$(".Post_Description_Text").keydown(function(e) { 
 
    if (e.keyCode == 13 && !e.shiftKey) { 
 
    e.preventDefault(); 
 
    alert("New line entered"); 
 
    } 
 
});
.Post_Description_Text { 
 
    width: 500px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
 
<textarea name="comment_text" id="comment_text" class="Post_Description_Text"></textarea>

+3

react-native,而不是網絡... – musicode

1

在的TextInput傳遞道具

blurOnSubmit = {true},然後在的onblur道具集中使用REF TextInput字段,這兩個將進入一個阻止新行和焦點保留在文本輸入字段。如果你只想阻止用戶輸入新行blurOnSubmit = {true}就足夠了

這裏的缺點是你可以看到鍵盤隱藏一會然後彈出。 有點像黑客。希望有人可以想出另一個或即興創作

+0

謝謝@Tharzeez brignging這給我的關注。這確實是一個黑客,我會測試它,讓你知道它是如何工作的。你在Android上測試了什麼? iOS版?都? – Noitidart

+1

我在ios上測試過,我會檢查android並更新 – Tharzeez

+0

非常感謝!我沒有得到測試的機會,但是當我測試時我也會讓你知道。 – Noitidart

0

您可以使用多行設置您的TextInput,並將blurOnSubmit設置爲false。 這將保持鍵盤,並允許輸入多行。

並使用onKeyPress道具僅用於發送消息。

onKeyPress({ nativeEvent: { key: keyValue } }) { 
    if (keyValue === "Enter") this.sendMessage(); 
} 

onMessageInputChange(message) { 
    this.setState({ 
     message, 
    }); 
} 

這應該在Android和iOS工作。

  <TextInput 
       value={message} 
       onChangeText={this.onMessageInputChange} 
       onKeyPress={this.onKeyPress} 
       returnKeyType="send" 
       blurOnSubmit={false} 
       multiline 
      />