我正在使用 React-Chrome-Redux 库 开发一个 React Chrome 扩展。
这是我第一次使用它,我遇到了一个错误,但是无法找出原因。
我的弹出式应用在运行时崩溃,并在控制台上显示以下错误消息:
Error in event handler for (unknown): TypeError: Cannot read property 'error' of undefined
我尝试进行调试并在错误的确切位置设置断点:
return new Promise(function (resolve, reject) {
chrome.runtime.sendMessage({
type: _constants.DISPATCH_TYPE,
payload: data
}, function (_ref2) {
var error = _ref2.error;
var value = _ref2.value;
if (error) {
reject((0, _assignIn2.default)(new Error(), error));
} else {
resolve(value.payload);
}
});
});
}
在Promise回调函数中,当操作类型为“chromex.dispatch”,且有效载荷也未定义时,_ref2是未定义的。
在引入分派方法启动身份验证进程后,出现了这种情况,代码如下:
class App extends Component {
constructor(props) {
super(props);
this.props.dispatch({
type: START_AUTH
});
}
我在popup / index.js和background / index.js上设置了存储通信通道:
//popup
import {Store} from 'react-chrome-redux';
import {Provider} from 'react-redux';
const proxyStore = new Store({
portName: 'my_app'
});
//background
import rootReducer from '../core/reducers';
import {wrapStore} from 'react-chrome-redux';
import {render} from 'react-dom';
import {Provider} from 'react-redux';
import {Store} from 'react-chrome-redux';
import App from './components/App';
const store = createStore(rootReducer, {});
wrapStore(store, {
portName: 'my_app'
});
我在认证过程中有很多日志信息,但好像没有任何反应。
在core/目录下,我有一些通用的文件,比如reducers、action types、actions等,它们总是由webpack-babel转换自ES6。
不幸的是,似乎React开发工具无法在Chrome扩展程序上工作,以帮助调试。
你有任何想法或需要更多信息来帮助我找出问题所在并解决它吗?