我在聊天應用程序中使用React。我需要在點擊聊天框輸入消息時輸入你的消息,應該集中精力。從另一個組件調用ref(?)
我的問題是,聊天框這是在主要成分,分別是從哪裏輸入的消息的輸入是組件。
看,主要成分
class ChatView extends React.Component {
constructor (props) {
super(props);
this._inputFocus = this._inputFocus.bind(this);
}
_inputFocus() {
let input = React.findDOMNode(this.refs.SHOULDFOCUS-HERE);
input.focus();
}
render() {
if (this.props.mode === 'player') {
dealerPlayerMessages = <ul ref="messages">{messages}</ul>;
// CHAT FORM IS THE COMPONENT CONTAINING THE INPUT
chatForm = <ChatForm onAddMessage={this.addMessage} />;
chatBox = <div>{dealerPlayerMessages}{chatForm}</div>
}
return <div className="dealer-player-box" onClick={this._inputFocus} >
{chatBox}
</div>;
}
}
所以,你看,當你在類名dealer-player-box
股利點擊,功能this._inputFocus
被調用。
但輸入到輸入信息文本,是在組件ChatForm
:
class ChatForm extends React.Component {
constructor (props) {
super(props);
}
render() {
return (<div className="chat-form">
// THIS IS THE INPUT I NEED TO FOCUS ON
<input className="input-form"
placeholder="Your message..."
ref="SHOULDFOCUS-HERE"
autofocus="true" />
</div>);
}
}
所以,從主要成分,我應該以集中於輸入自另一個組件嗎?
對於需要使用JavaScript集中輸入的此表單顯示有什麼奇怪的地方嗎? – Mathletics
@Mathletics是一個很棒的形式,我需要的只是當你點擊'dealer-player-box' div時關注那個輸入,就是這樣。只是一個要求。 – NietzscheProgrammer
您是否期望用戶點擊_outside_輸入? – Mathletics