# MMLoading 加载中

可以左右滑动来展示操作按钮的单元格组件。

# Props

# MMLoadingProps

属性 类型 默认值 必传 说明
size number icon
type ELoadingType | keyof typeof ELoadingType 'fadeDot' 类型
color string 颜色
gray boolean 灰色调

# 代码示例

import { memo, FC, useState } from "react";
import { View } from "@tarojs/components";
import styles from "./index.module.less";
import MMLoading from "../../components/loading";
import MMNavigation from "../../components/navigation";
import PageDemoBlock from "../../components/pageComponents/pageDemoBlock";
import MMSpace from "../../components/space";
import MMStepper from "../../components/stepper";
import MMButton from "../../components/button";
import { styleVar } from "../../components/styles/themes/styleVar";

interface ILoadingPageProps {}

const Component: FC<ILoadingPageProps> = () => {
  const [props, setProps] = useState({
    size: 25,
    gray: false,
    color: styleVar.primaryColor,
  });

  return (
    <View className={styles.loadingPageStyle}>
      <MMNavigation title="Loading" />

      <MMLoading {...props} />
      <View>fadeDot</View>

      <MMLoading type="jelly" {...props} />
      <View>jelly</View>

      <MMLoading type="ball" {...props} />
      <View>ball</View>

      <MMLoading type="spinner" {...props} />
      <View>spinner</View>

      <MMLoading type="rotate" {...props} />
      <View>rotate</View>

      <PageDemoBlock title="设置">
        <MMSpace direction="column" gap={45}>
          <View>设置尺寸</View>
          <MMStepper
            value={props.size}
            min={10}
            max={99}
            onChange={(ev) => setProps((pre) => ({ ...pre, size: ev }))}
          />

          <MMButton
            text="设置颜色"
            loading
            onClick={() => {
              const colors = [
                styleVar.primaryColor,
                styleVar.blue,
                styleVar.pink,
              ];

              const idx =
                (colors.findIndex((color) => color === props.color) + 1) %
                colors.length;

              setProps((pre) => ({ ...pre, color: colors[idx] }));
            }}
          />

          <MMButton
            text={props.gray ? "取消禁用" : "设置禁用"}
            onClick={() => {
              setProps((pre) => ({ ...pre, gray: !pre.gray }));
            }}
          />
        </MMSpace>
      </PageDemoBlock>
    </View>
  );
};

const LoadingPage = memo(Component);
export default LoadingPage;