我在聊天应用程序中使用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