Jquery React router TypeError:_NavbarActions2.default.updateOnlineUsers不是函数
Im使用nodeJs和react 0.14.2以及react路由器1.0.3和历史记录1.17.0。当我在应用程序上导航时,无论我尝试执行什么操作,我都会得到“未定义”,例如从数据库中获取字符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
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不是函数”