在SPFX属性窗格中的属性更改时重新调用api

时间:2018-04-16 16:22:54

标签: reactjs typescript sharepoint sharepoint-online spfx

这可能是一个非常愚蠢的问题,但现在可以了。

我的“属性”窗格中有一个下拉字段,其中填充了当前网站的所有列表。这没问题。

当我更改下拉列表时,我使用列表的ID填充属性。在我的反应组件中,我打电话给下面的

public componentDidMount(){
     var url = this.props.webUrl + "/_api/web/lists(guid'"+ this.props.listId+"')/items";
     console.log("LIST API = " + url);
     var getListInfo: FetchListData = new FetchListData();
      getListInfo.getItems(url, this.props.client).then((data) => {

         this.setState({ navItems: data });
      })
  }`

我的假设是,当Web部件最初加载时,组件将呈现在页面上,但如果我更新属性,则不会再调用此componentDidMount,因为从技术上讲它已经安装。

我想要做的是在更改列表(下拉属性)后重新渲染组件。我目前拥有的将会工作,因为一旦您保存页面,它将呈现所有检索到的项目。我只是假设有办法让它变得动态。

我的反应经验至少是基本的,所以任何方向都是完美的。

干杯

Truez

1 个答案:

答案 0 :(得分:0)

在查看React页面循环后想出这个。

componentDidUpdate(prevProps, prevState) {
  //If statement checking if your property or state has changed.
  //Re run API call 
}

干杯

Truez