Githubのコードを見て、onKeyDown
小道具の使い方を理解できません。ですが、どうすれば使用できますか?
そして今、私はあなたが1によってそれら1を通過し、その後、私は押しできるようにする必要があるときonKeyDown
は結果を強調したい:目的は、私はそうのように示される結果を持っているということですenter
を押してオプションを選択します。
誰でも正しい方向に向けることができますか?
これは初心者の質問ですが、この機能をどのように使用するのか分かりません。私のアプリのこのセクションについては、以下のコードを参照してください。
import React, {Component} from 'react';
import {Link} from 'react-router';
import LoginModal from '../homePage/LoginModal';
import {connect} from 'react-redux';
import {userLogout} from '../../actions/user.actions';
import $ from 'jquery';
import {Typeahead} from 'react-typeahead';
import {getPlaylists} from '../../actions/playlist.actions';
import {searchPlaylistData} from '../../helper';
class Nav extends Component {
constructor(props) {
super(props);
this.state = {
modal:false,
toggleNav:false
}
this.toggleModal = this.toggleModal.bind(this);
this.onToggleNav = this.onToggleNav.bind(this);
this.onClickLogout = this.onClickLogout.bind(this);
this.keyDown = this.keyDown.bind(this);
}
componentDidMount() {
this.props.getPlaylists();
// $('.navbar-nav').on('click', function(){
// const collapse = $('#navbar').hasClass('collapse');
// if (collapse === true){
// // $('#navbar').removeClass('collapse');
// this.setState({
// toggleNav: false
// })
// }
// else{
// // $('#navbar').addClass('collapse');
// this.setState({
// toggleNav:true
// })
// }
// });
}
render() {
return (
<div>
<nav className="navbar fixed-top navbar-static-top navbar-expand-lg navbar-light custom-bg">
<a className="navbar-brand" href="#"><img className="logo" src="/images/logo.png"/></a>
<button className="navbar-toggler" type="button" onClick={this.onToggleNav}>
<span className="navbar-toggler-icon"></span>
</button>
<div id='navbar' className={this.state.toggleNav ? 'navbar-collapse' : 'collapse navbar-collapse'}>
<ul className="nav navbar-nav mr-auto"></ul>
<ul className="navbar-nav">
<li className="nav-item active">
<Link onClick={this.onToggleNav} className="nav-link" to={'/'}>Home</Link>
</li>
{this.props.userProfile.role === 'admin' ?
<li className="nav-item">
<Link onClick={this.onToggleNav} className="nav-link" to ={'/addPlaylist'}>Playlists</Link>
</li> :
null }
<li className="nav-item">
<Link onClick={this.onToggleNav} className="nav-link" to ={'/contactUs'}>Contact</Link>
</li>
{}
</ul>
<div className="form-inline my-2 my-lg-0">
{/* <input className="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search"/> */}
{console.log(this.props.playlists)}
<Typeahead
defaultValue=''
options={this.props.playlists}
filterOption='songTitle'
displayOption={(option) => {
return option.songTitle;
}}
onKeyDown={this.keyDown}
customClasses={{
input: "topcoat-text-input",
results: "results-container"
}}
className="form-control mr-sm-2"
/>
{Object.keys(this.props.user).length !== 0 ?
<button onClick={this.onClickLogout} type="button" className="btn btn-primary my-2 my-sm-0">LogOut</button> :
<button onClick={this.toggleModal} type="button" className="btn btn-primary my-2 my-sm-0">Login</button>}
</div>
</div>
<LoginModal show={this.state.modal} onClose={this.toggleModal} />
</nav>
</div>
)
}
toggleModal() {
this.setState({
modal: !this.state.modal,
toggleNav: false
});
}
onToggleNav() {
this.setState({
toggleNav: !this.state.toggleNav
})
}
onClickLogout() {
this.props.userLogout();
this.onToggleNav();
}
keyDown (event, event2) {
console.log(event);
console.log(event2)
}
}
function mapStateToProps (state) {
const searchablePlaylistData = searchPlaylistData(state.playlist.playlists);
return {
user: state.user.user,
userProfile: state.user.userProfile,
playlists: searchablePlaylistData
}
}
function mapDispatchToProps (dispatch) {
return {
userLogout:() => {
dispatch(userLogout());
},
getPlaylists:() => {
dispatch(getPlaylists());
}
}
}
export default connect(mapStateToProps, mapDispatchToProps)(Nav);
私は他のパラメータがあるかどうかを確認することを試みたが、私は渡されたそのわずかイベントだと思い
。
感謝。これはまさに正しいことです。あなたは私のonKeyDown機能の混乱について正しいものでした。再度、感謝します! –