我有一个组件,用来渲染
在这个函数中,我无法获取
我也尝试了
我想将选定选项的ID设置为state中的
Input type='select'
(我使用reactstrap)。import React, {Component} from 'react'
import {
Form,
FormGroup,
Input,
Button,
Col,
} from 'reactstrap'
import {
withRouter,
} from 'react-router'
import Context from '../../../../../provider'
class NewPost extends Component {
constructor(props) {
super(props)
this.state = {
subreddits: [],
subreddit_selected: '',
subreddit_id: 0,
...
}
this.handleSubredditSelect = this.handleSubredditSelect.bind(this)
}
componentDidMount() {
fetch('/api/reddit/r/')
.then(data => data.json())
.then(json => {
this.setState({
subreddits: json,
...
})
})
}
handleSubredditSelect(event) {
console.log('selected id: ',event.target.id)
this.setState({
subreddit_selected: event.target.value,
subreddit_id: event.target.id,
}, () =>
this.props.history.push(`/${this.state.subreddit_selected}/new/`)
)
}
...
render() {
return (
<Context.Consumer>
{context => {
return (
<React.Fragment>
<Form
...
>
<FormGroup row>
<Col sm={7}>
<Input
type="select"
onChange={this.handleSubredditSelect}
required
>
<option key='0' disabled selected>Select an Option</option>
{this.state.subreddits.map((subreddit) => {
return (
<option key={subreddit.id} id={subreddit.id}>{'r/' + subreddit.name}</option>
)
})}
</Input>
</Col>
</FormGroup>
...
</React.Fragment>
)
}}
</Context.Consumer>
)
}
}
export default withRouter(NewPost)
所以,我有一个名为handleSubredditSelect
的函数,它执行以下操作:
handleSubredditSelect(event) {
this.setState({
subreddit_selected: event.target.value,
subreddit_id: event.target.id,
}, () =>
this.props.history.push(`/${this.state.subreddit_selected}/new/`)
)
}
在这个函数中,我无法获取
event.target.id
的任何值。我也尝试了
event.target.key
,但它返回一个空字符串""。我想将选定选项的ID设置为state中的
subreddit_id
。
console.log(event.target)
返回整个select
。那么,如何解决这个问题呢?如果我没记错的话,你放置的代码也面临着同样的问题! - Sreekar Moulievent.target[event.target.selectedIndex].id
。 - Xarvalusevent.target[event.target.selectedIndex].attribute
。 - Sreekar Mouli