javascript - 从选项下拉存储状态以将其传递给父组件
问题描述
我正在尝试searchValue
根据从中选择的值存储参数options
,以便可以将该值从子组件发送到父组件。但是,searchValue
返回未定义。如何根据在中选择的值存储我searchValue
的值option
?
我有以下内容:
class SearchField extends Component {
state = {
options: ["Choose search method", "Id Number", "Phone Number", "Mobile Number"]
};
handleSearchChoice = (e) => {
var searchValue = e.target;
console.log(searchValue);
};
render() {
const initialValues = {
name: ""
};
return (
<Form handleSubmit={this.onFormSubmit} initialValues={initialValues}>
{({ values, handleChange }) => (
<React.Fragment>
<FormGroup>
<DateInput />
<FormText>Enter customer info</FormText>
<Input placeholder="mobile, id number, etc..."
name="name"
value={values.name}
onChange={handleChange}/>
<FormText>Select an option</FormText>
<Select onChange={this.handleSearchChoice}>
{this.state.options.map(option => (
<option key={option} value={option}>
{option}
</option>
))}
</Select>
<div>
<Button onClick={this.isButtonEnabled}>Submit</Button>
</div>
</FormGroup>
</React.Fragment>
)}
</Form>
);
}
}
解决方案
目前,当您应该获取所选选项的值时,您(错误地)试图从状态中获取元素(出于某种原因)。
您应该为每个选项添加一个 value 属性
<option key={option} value={option}>{option}</option>
然后您可以在句柄方法中拾取它
handleSearchChoice = (e) => {
var { value: searchValue } = e.target;
console.log(searchValue);
};
注意:我根据您的问题重新标记了被破坏
value
的属性。searchValue
您可能需要重新考虑如何构建该选择元素,因为您将收到“选择搜索方法”作为返回的默认选项的值。
推荐阅读
- python-3.x - 如何在逻辑上测试 np.where 结果的输出?
- javascript - 根据属性名称获取所有唯一对象值的数组
- ruby - 使用无头 Chrome 将 URL 列入黑名单
- c# - 从选定的 ListBoxItem 模板中获取文本块值
- r - 拆分数据框的列并将它们重新组合为一列而没有空格
- wordpress - 滑块在 wordpress 中我目录的每个 url 上打开
- winapi - mingw32-g++ 编译器如何知道在 WIN32 机器可执行文件中注入系统调用的位置?
- javascript - CKEditor - 不在帖子中提交数据
- c# - 如何在 MVVM 中使用相同的 ViewModel 拥有多个视图?
- regex - 特定数字长度的 Bash 正则表达式