将Chrome API与React.js结合使用

时间:2018-07-18 21:47:17

标签: javascript reactjs google-chrome-extension google-chrome-devtools

我一直在尝试使用React创建一个简单的Chrome扩展程序。清单看起来像这样:

{
  "name": "New Tab",
  "version": "1.0",
  "manifest_version": 2,
  "description": "A minimalist replacement for Chrome's New Tab page.",
  "chrome_url_overrides": {
    "newtab": "index.html"
  },
  "permissions": ["tabs", "topSites"]
}

我不确定如何在React中实际使用Chrome topSites API。我一直在查看文档https://developer.chrome.com/extensions/topSites,但并没有提供太多的见解。我试图做这样的事情来获取数据数组。

chrome.topSites.get(console.log)

但是

'chrome' is not defined  no-undef

2 个答案:

答案 0 :(得分:4)

您可以通过在文件顶部添加/*global chrome*/来定义chrome。

例如

    /*global chrome*/
import React, { Component } from 'react';
import './App.css';

    class App extends Component {
        componentWillMount() {
            chrome.storage.local.set({ 'data' : 'Your data'}, function(result) {
                console.log(" Data saved ")
            });
        }

        render() {
            return (
              <div className="App">
              </div>
            );
        }
    }

    export default App;

答案 1 :(得分:1)

您需要禁用ESLint规则no-undef,然后再次启用它:

/* eslint-disable no-undef */
function callback(val) {
    console.log(val)
}

chrome.topSites.get(callback);
/* eslint-enable no-undef */