菜单列表 React 组件

菜单列表不是一个独立的组件,而只是使用 <List><ListItem> 组件的特殊情况。

要启用菜单列表,我们需要将 menuList 属性添加到 List 组件,并通过设置相关 ListItem 上的 selected 属性来控制当前选定的菜单列表项

示例

menu-list.jsx
import React, { useState } from 'react';
import { Page, Navbar, Block, List, ListItem, Icon } from 'framework7-react';

export default () => {
  const [selected, setSelected] = useState('home');
  const [selectedMedia, setSelectedMedia] = useState('home');
  return (
    <Page>
      <Navbar title="Menu List"></Navbar>

      <Block>
        <p>
          Menu list unlike usual links list is designed to indicate currently active screen (or
          section) of your app. Think about it like a Tabbar but in a form of a list.
        </p>
      </Block>

      <List menuList outlineIos strongIos>
        <ListItem
          link
          title="Home"
          selected={selected === 'home'}
          onClick={() => setSelected('home')}
        >
          <Icon md="material:home" ios="f7:house_fill" slot="media" />
        </ListItem>
        <ListItem
          link
          title="Profile"
          selected={selected === 'profile'}
          onClick={() => setSelected('profile')}
        >
          <Icon md="material:person" ios="f7:person_fill" slot="media" />
        </ListItem>
        <ListItem
          link
          title="Settings"
          selected={selected === 'settings'}
          onClick={() => setSelected('settings')}
        >
          <Icon md="material:settings" ios="f7:gear_alt_fill" slot="media" />
        </ListItem>
      </List>

      <List menuList mediaList outlineIos strongIos>
        <ListItem
          link
          title="Home"
          subtitle="Home subtitle"
          selected={selectedMedia === 'home'}
          onClick={() => setSelectedMedia('home')}
        >
          <Icon md="material:home" ios="f7:house_fill" slot="media" />
        </ListItem>
        <ListItem
          link
          title="Profile"
          subtitle="Profile subtitle"
          selected={selectedMedia === 'profile'}
          onClick={() => setSelectedMedia('profile')}
        >
          <Icon md="material:person" ios="f7:person_fill" slot="media" />
        </ListItem>
        <ListItem
          link
          title="Settings"
          subtitle="Settings subtitle"
          selected={selectedMedia === 'settings'}
          onClick={() => setSelectedMedia('settings')}
        >
          <Icon md="material:settings" ios="f7:gear_alt_fill" slot="media" />
        </ListItem>
      </List>
    </Page>
  );
};