如何在ReactJS中重新加载当前页面?如果是JavaScript,我们可以写window.location.reload();如何在reactjs中做同样的事情?我可以通过UI添加新数据。但是没有刷新,我看不到列表。每当我要添加一些自身时间的数据时,我都想要。

onAddBucket() {
    let self = this;
    let getToken = localStorage.getItem('myToken');
    var apiBaseUrl = "...";
    let input = {
      "name" :  this.state.fields["bucket_name"]
    }
    axios.defaults.headers.common['Authorization'] = getToken;
    axios.post(apiBaseUrl+'...',input)
    .then(function (response) {

      if(response.data.status == 200){
      let result =  self.state.buckets.concat(response.data.buckets)
      }else{
        alert(response.data.message);
      }
    })
    .catch(function (error) {
      console.log(error);
    });
  }

最佳答案

由于React最终可以归结为普通的旧JavaScript,因此您真的可以将其放置在任何地方!例如,您可以将其放在React类的componentDidMount()上。

在进行编辑时,您可能需要尝试如下操作:

class Component extends React.Component {
  constructor(props) {
    super(props);
    this.onAddBucket = this.onAddBucket.bind(this);
  }
  componentWillMount() {
    this.setState({
      buckets: {},
    })
  }
  componentDidMount() {
    this.onAddBucket();
  }
  onAddBucket() {
    let self = this;
    let getToken = localStorage.getItem('myToken');
    var apiBaseUrl = "...";
    let input = {
      "name" :  this.state.fields["bucket_name"]
    }
    axios.defaults.headers.common['Authorization'] = getToken;
    axios.post(apiBaseUrl+'...',input)
    .then(function (response) {
      if (response.data.status == 200) {
        this.setState({
          buckets: this.state.buckets.concat(response.data.buckets),
        });
      } else {
        alert(response.data.message);
      }
    })
    .catch(function (error) {
      console.log(error);
    });
  }
  render() {
    return (
      {this.state.bucket}
    );
  }
}

关于javascript - 如何在ReactJS中重新加载当前页面?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47201919/

10-12 05:56