React—select下拉列表

import React from 'react';
import ReactDom from 'react-dom';

class Select extends React.Component {
    constructor () {
        super();
        this.state = {
            value: ''
        }
        this.handleSubmit = this.handleSubmit.bind(this);
        this.handleChange = this.handleChange.bind(this);
    }
    handleChange (e) { // 选择
        this.setState({
            value: e.target.value
        })
    }
    handleSubmit () {
        if (this.state.value == '') {
            alert('未选择')
        } else {
            alert('你的选择是' + this.state.value);
            e.preventDefault(); // 阻止默认行为,在提交之前需要验证的时候先拦截一下
        }
    }
    render () {
        return (
            <div>
                <form onSubmit={this.handleSubmit}>
                    <label>你喜欢的水果是:</label>
                    <select onChange={this.handleChange}>
                        <option value="未选择">请选择</option>
                        <option value="apple">apple</option>
                        <option value="banana">banana</option>
                        <option value="pear">pear</option>
                        <option value="orange">orange</option>
                    </select>
                    <input type="submit" value="提交" />
                </form>
            </div>
        )
    }
}



ReactDom.render(
    <div>
        <Select />
    </div>,
    document.getElementById('root')
)


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React 中,可以使用 `<select>` 元素来创建下拉列表,并通过设置其 `value` 属性来设置当前选中的选项。如果你想将后端数据进过滤,你需要先获取到后端数据,然后根据一定的条件进过滤,最后将过滤后的数据渲染到 `<select>` 中。 以下是一个简单的示例代码,假设我们有一个后端接口 `/api/items`,返回的是一个数组,每个元素包含 `id` 和 `name` 两个属性: ```javascript import { useState, useEffect } from 'react'; function App() { const [items, setItems] = useState([]); const [selectedItemId, setSelectedItemId] = useState(null); useEffect(() => { fetch('/api/items') .then(response => response.json()) .then(data => setItems(data)); }, []); const filteredItems = items.filter(item => item.name.includes('filter')); return ( <div> <select value={selectedItemId} onChange={e => setSelectedItemId(e.target.value)}> <option value="">请选择</option> {filteredItems.map(item => ( <option key={item.id} value={item.id}>{item.name}</option> ))} </select> </div> ); } export default App; ``` 上面的代码中,我们使用了 `useState` 和 `useEffect` 这两个 React Hooks 来管理组件状态和异步数据获取。在 `useEffect` 中,我们使用 `fetch` 函数来获取后端数据,并将其保存到组件状态中。 在 `<select>` 中,我们设置了 `value` 属性为 `selectedItemId`,并通过 `onChange` 事件来更新选中的选项。同时,我们使用 `filter` 函数来过滤后端数据中名称包含 `filter` 的元素,并将其渲染成 `<option>` 元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值