Jquery React router TypeError:_NavbarActions2.default.updateOnlineUsers不是函数

Jquery React router TypeError:_NavbarActions2.default.updateOnlineUsers不是函数,jquery,json,node.js,reactjs,react-router,Jquery,Json,Node.js,Reactjs,React Router,Im使用nodeJs和react 0.14.2以及react路由器1.0.3和历史记录1.17.0。当我在应用程序上导航时,无论我尝试执行什么操作,我都会得到“未定义”,例如从数据库中获取字符 import alt from '../alt'; import {assign} from 'underscore'; class NavbarActions { constructor() { this.actions = alt.generateActions( 'updateOnline

Im使用nodeJs和react 0.14.2以及react路由器1.0.3和历史记录1.17.0。当我在应用程序上导航时,无论我尝试执行什么操作,我都会得到“未定义”,例如从数据库中获取字符

import alt from '../alt';
import {assign} from 'underscore';

class NavbarActions {
 constructor() {
 this.actions = alt.generateActions(
  'updateOnlineUsers',
  'updateAjaxAnimation',
  'updateSearchQuery',
  'getCharacterCountSuccess',
  'getCharacterCountFail',
  'findCharacterSuccess',
  'findCharacterFail'
 );
 this.findCharacter = this.findCharacter.bind(this);
}

findCharacter(payload) {
$.ajax({
  url: '/api/characters/search',
  data: { name: payload.searchQuery }
})
  .done((data) => {
    assign(payload, data);
    self.actions.findCharacterSuccess(payload);
  })
  .fail(() => {
    self.actions.findCharacterFail(payload);
  });
 }

 getCharacterCount() {
  $.ajax({ url: '/api/characters/count' })
  .done((data) => {
    self.actions.getCharacterCountSuccess(data)
  })
  .fail((jqXhr) => {
    self.actions.getCharacterCountFail(jqXhr)
  });
 }
}

export default alt.createActions(NavbarActions);
我在调试时出错,无法再在搜索栏中键入内容

TypeError: _NavbarActions2.default.updateOnlineUsers is not a function
然而,当我调试时,我看到我得到了一个带有数据的json字符串,负载对象不是空的,并且有数据

NavbarActions是从Navbar.js调用的

import React from 'react';
import {Link} from 'react-router';
import NavbarStore from '../stores/NavbarStore';
import NavbarActions from '../actions/NavbarActions';

class Navbar extends React.Component {
 constructor(props) {
  super(props);
  this.state = NavbarStore.getState();
  this.onChange = this.onChange.bind(this);
}

componentDidMount() {
 NavbarStore.listen(this.onChange);
 NavbarActions.getCharacterCount();

 let socket = io.connect();

 socket.on('onlineUsers', (data) => {
   NavbarActions.updateOnlineUsers(data);
 });

 $(document).ajaxStart(() => {
   NavbarActions.updateAjaxAnimation('fadeIn');
 });

 $(document).ajaxComplete(() => {
  setTimeout(() => {
    NavbarActions.updateAjaxAnimation('fadeOut');
  }, 750);
 });
}
componentWillUnmount() {
 NavbarStore.unlisten(this.onChange);
}

onChange(state) {
 this.setState(state);
}

handleSubmit(event) {
event.preventDefault();

let searchQuery = this.state.searchQuery.trim();

if (searchQuery) {
  NavbarActions.findCharacter({
    searchQuery: searchQuery,
    searchForm: this.refs.searchForm,
    history: this.props.history
  });
}

}

出现了一些与范围相关的基本问题,我希望这会起作用

    import alt from '../alt';
    import {assign} from 'underscore';

    class NavbarActions {
      constructor() {
       this.generateActions(
       'updateOnlineUsers',
       'updateAjaxAnimation',
       'updateSearchQuery',
       'getCharacterCountSuccess',
       'getCharacterCountFail',
       'findCharacterSuccess',
       'findCharacterFail'
     );
     this.findCharacter = this.findCharacter.bind(this);
    }

    findCharacter(payload) {
    var self = this;
    $.ajax({
      url: '/api/characters/search',
      data: { name: payload.searchQuery }
    })
      .done((data) => {
        assign(payload, data);
        self.actions.findCharacterSuccess(payload);
      })
      .fail(() => {
        self.actions.findCharacterFail(payload);
      });
    }
    export default alt.createActions(NavbarActions);

通过创建新的项目文件夹并重新运行干净的npm安装来解决此问题。我想我的依赖项有一个问题

您的GenerationActions方法定义在哪里?你也可以发布一些细节吗?generationActions只是这个链接Tkx中的一个简写,但不幸的是,它在代码“socket.on('onlineUsers',(data)=>{NavbarActions.updateOnlineUsers(data);});”的这一部分给了我一个不同的错误错误:“TypeError:\u NavbarActions2.default.updateOnlineUsers不是函数”