0

我是 ReactJS 的新手,目前我正在使用ant.design我的界面,并且ant.design我正在使用Switch Steps for Wizard 表单。单击时我想更改下一个按钮的样式。我是这个平台的新手,请指导我

谢谢

4

1 回答 1

1

因此,要更改加载状态,您可以将文档中的示例修改为:

import { Steps, Button, message } from 'antd';

const Step = Steps.Step;

const steps = [{
  title: 'First',
  content: 'First-content',
}, {
  title: 'Second',
  content: 'Second-content',
}, {
  title: 'Last',
  content: 'Last-content',
}];

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      current: 0,
      loading: false
    };
  }

  next() {
    const current = this.state.current + 1;
    this.setState({ current, loading: true });
  }

  prev() {
    const current = this.state.current - 1;
    this.setState({ current });
  }

  render() {
    const { current, loading } = this.state;
    return (
      <div>
        <Steps current={current}>
          {steps.map(item => <Step key={item.title} title={item.title} />)}
        </Steps>
        <div className="steps-content">{steps[current].content}</div>
        <div className="steps-action">
          {
            current < steps.length - 1
            && <Button type="primary" loading={loading} onClick={() => this.next()}>Next</Button>
          }
          {
            current === steps.length - 1
            && <Button type="primary" loading={loading} onClick={() => message.success('Processing complete!')}>Done</Button>
          }
          {
            current > 0
            && (
            <Button loading={loading} style={{ marginLeft: 8 }} onClick={() => this.prev()}>
              Previous
            </Button>
            )
          }
        </div>
      </div>
    );
  }
}

这将导致按钮在单击下一步时进入加载状态。但是,您需要一些外部事件被馈送到组件中,以告诉它何时删除加载状态。

这可以通过this.prop从父组件更改并componentWillReceiveProps在您执行操作的位置中检测到的 a 来完成this.setState({loading:false}),或者通过next()调用一些异步方法来重置其回调中的加载状态。

于 2018-12-07T11:12:55.290 回答