如何管理不必使用React + Flux更新的只读文件

时间:2017-08-04 16:51:45

标签: reactjs flux

我在我正在使用的应用程序上使用React-Flux而且我已经碰壁了,所以我必须确保到目前为止我正在使用所有内容。

我有一个仅用于阅读目的的json文件。它永远不应动态变化。我从我在AppActions文件中执行的Ajax请求中获取文件数据。到现在为止还挺好。现在我正在尝试使用存储的数据。我的问题是这样的:在AppStore文件中我应该向相应的case添加emitChange事件吗?我该如何管理只读文件?

当我尝试使用我正在构建的组件中的数据并且如果我在componentWillMountcomponentWillUnmount函数中没有使用事件监听器时,我发现了这一切。每次刷新页面时存储的数据。

const AppStore = new AppStoreClass();
AppStore.dispatchToken = AppDispatcher.register(action =>{
 switch(action.actionType){
  case AppConstants.GET_NAMES:
   setNames(action.names);
   AppStore.emitChange();
   break;
 }
});
export default AppStore;

这是我使用只读数据的Nameday组件。

class Nameday extends Component {
 constructor(){
  super();
  this.state = {
   saints: AppStore.getNames(),
  }
  this.onChange = this.onChange.bind(this);
 }

 componentWillMount(){
  AppStore.addChangeListener(this.onChange);
 }
 componentDidMount(){
  AppActions.getNames();
 } 
 onChange(){
  this.setState({
   saints: AppStore.getNames(),
  });
 }
 componentWillUnmount(){
  AppStore.removeChangeListener(this.onChange);
 }

 render() {
  let dates = [];
   this.state.saints.map((saint, i) => {
    saint.names.map((name, j) => {
     if (name === firstName) {
      dates.push(saint.date);
     }
     return dates;
    });
    return null;
   });
  let option = ....
  return (
   option
  );
 }
}

0 个答案:

没有答案