Javascript 无法获取输入选择窗体的初始值
我正在对输入字段使用react select。除了单击后在输入中获取所选值之外,一切都正常。另外(正如标题中提到的),我无法看到初始值在select字段中弹出,尽管它是在代码中设置的Javascript 无法获取输入选择窗体的初始值,javascript,reactjs,react-select,Javascript,Reactjs,React Select,我正在对输入字段使用react select。除了单击后在输入中获取所选值之外,一切都正常。另外(正如标题中提到的),我无法看到初始值在select字段中弹出,尽管它是在代码中设置的 render(){ var Select = require('react-select'); var options = [ { value: '1', label: '1' }, { value: '2', label: '2' } ]; f
render(){
var Select = require('react-select');
var options = [
{ value: '1', label: '1' },
{ value: '2', label: '2' }
];
function logChange(val) {
console.log(val);
}
return(
<Select
name="form-field-name"
value="one"
options={options}
onChange={logChange}
/>
);
render(){
var-Select=require('react-Select');
变量选项=[
{值:'1',标签:'1'},
{值:'2',标签:'2'}
];
功能日志更改(val){
控制台日志(val);
}
返回(
);
所有事件都正常工作(我可以在我的console.log上看到,但屏幕上没有任何变化)
这是控制台.log和渲染(null是因为X图标清除)
阅读源代码后,我确信您将错误的值传递到
值中
尝试在选项属性
中查找传递的值(从值属性
),如果失败,则返回未定义的
for (var i = 0; i < options.length; i++) {
if (options[i][valueKey] === value) return options[i];
}
回答您的评论问题:
我不确定,但对我来说,这看起来像是受控输入。您的选择值位于使用prop中的值的内部。
我认为你必须这样做:
class MySelect extends React.Component {
constructor(props) {
super(props)
this.state = {
value: "1"
}
this.handleChange.bind(this)
}
handleChange(selectedValue) {
this.setState({ value: selectedValue })
}
render() {
return (
<Select
name="form-field-name"
value={this.state.value}
options={options}
onChange={this.handleChange} />
)
}
}
类MySelect扩展了React.Component{
建造师(道具){
超级(道具)
此.state={
值:“1”
}
this.handleChange.bind(this)
}
handleChange(selectedValue){
this.setState({value:selectedValue})
}
render(){
返回(
)
}
}
您忘记添加此关键字onChange={this.logChange}
。进一步看看这个例子,它只会让事情变得更糟……不需要这样做……当添加这个前缀时,控制台中没有显示任何内容。我已经得到了我的初始值,tnx,但是当我单击它时,值如何仍然没有改变?我应该在我的logChange方法上添加参数吗?它看起来像是受控组件().我想onChange函数可以让你在应该使用的状态上设置值。Tnx man.我原以为react select会为我做所有的事情,但似乎没有。。
class MySelect extends React.Component {
constructor(props) {
super(props)
this.state = {
value: "1"
}
this.handleChange.bind(this)
}
handleChange(selectedValue) {
this.setState({ value: selectedValue })
}
render() {
return (
<Select
name="form-field-name"
value={this.state.value}
options={options}
onChange={this.handleChange} />
)
}
}