小编Ale*_*nça的帖子

在axios的跨领域

我正在为axios改变jquery ajax而我没有使用跨域的axios:

axios.get(myurl, {
            headers: { 'crossDomain': true },
        }).then(res => { 
            console.log(res);

        }).catch(error => {
            console.log('erro', error);
        })
Run Code Online (Sandbox Code Playgroud)

我的jquery代码正在运行:

$.ajax({
   type: 'GET',
   crossDomain: true,
   url:myurl,
   success: (res) => {},
   error: (fail) => {}     
})
Run Code Online (Sandbox Code Playgroud)

错误:预检响应中的Access-Control-Allow-Headers不允许使用请求标头字段crossDomain.

谁能帮我?

django ajax cors reactjs axios

8
推荐指数
1
解决办法
3万
查看次数

Nock 无法与 axios get at actions 异步测试一起使用

我正在尝试在 redux 上测试我的异步操作,但我没有得到它。

我正在使用 nock 和 axios,因此我尝试从 axios get 接收响应数据来测试我的操作:

describe('Async Actions', () => {
    afterEach(() => {
        nock.cleanAll();
    });

    it('should load transmissors', (done) => {
        const localStorage = {
            token: 'a9sd8f9asdfiasdf'
        };
        nock('https://tenant.contactto.care')
                .get('/api/clients/1/transmissors/', {
                     reqheaders: { 'Authorization': "Token " + localStorage.token } 
                })
                .reply(200, { data: [
                    {
                        "id": 12,
                        "zone": "013",
                        "client": 1,
                        "description": "pingente",
                        "identifier": "",
                        "general_info": ""
                    },
                    {
                        "id": 15,
                        "zone": "034",
                        "client": 1,
                        "description": "colar",
                        "identifier": "",
                        "general_info": ""
                    }
                ]});

        axios.get(`/api/clients/1/transmissors/`, { …
Run Code Online (Sandbox Code Playgroud)

reactjs nock redux redux-thunk axios

5
推荐指数
1
解决办法
2165
查看次数

loader.load() 函数必须用一个值调用,但得到:undefined

我正在关注这个graphql教程,一切顺利,直到我尝试使用数据加载器。

我的 server.js 是:

const start = async () => {
  const mongo = await connectMongo();

  const buildOptions = async req => {
    const user = await authenticate(req, mongo.Users);
    return {
      context: {
        dataloaders: buildDataloaders(mongo),
        mongo,
        user
      },
      schema
    };
  };
  app.use('/graphql', bodyParser.json(), graphqlExpress(buildOptions));
  app.use(
    '/graphiql',
    graphiqlExpress({
      endpointURL: '/graphql',
      passHeader: `'Authorization': 'bearer token-name@email.com'`
    })
  );
  app.use('/', expressStaticGzip('dist'));
  app.use('/attendance', expressStaticGzip('dist'));
  app.use('/login', expressStaticGzip('dist'));

  spdy.createServer(sslOptions, app).listen(process.env.PORT || 8080, error => {
    if (error) {
      console.error(error);
      return process.exit(1);
    } else {
      console.info( …
Run Code Online (Sandbox Code Playgroud)

node.js graphql

4
推荐指数
1
解决办法
2764
查看次数

如何在 Service Worker 上访问 Redux 存储

我在我的应用程序中使用 React、Redux 和 Service Worker,我想在我的 Service Worker 中访问 Redux 存储。

我的服务人员是:

function checkCompatibility() {
  if ('serviceWorker' in navigator && 'PushManager' in window) {
    console.log('Service Worker and Push is supported');

    navigator.serviceWorker.register('./sw.js')
    .then(function (swReg) {
      console.log('Service Worker is registered', swReg);
    })
    .catch(function (error) {
      console.error('Service Worker Error', error);
    });
  } else {
    console.warn('Push messaging is not supported');
  }
}

function askForNotification() {
  if (!('Notification' in window)) {
    console.log('This browser does not support desktop notification');
  } else if (Notification.permission === 'granted') {
    console.log('Permission …
Run Code Online (Sandbox Code Playgroud)

reactjs service-worker redux

3
推荐指数
1
解决办法
5280
查看次数

react超出最大调用堆栈大小

我尝试将用户重定向到"TrapPage",如果他没有登录.

这是我的代码:

function requireAuth(nextState, replace) {
    if (!auth.loggedIn()) {
        replace({ 
            pathname:'/trap'
        })
    }
}

export default (
    <Route path="/" component={App} onEnter={requireAuth}>
        <IndexRoute component={DashboardPage} />
        <Route path="trap">
            <IndexRoute component={TrapPage}/>
        </Route>
        <Route path="accounts">
            <IndexRoute component={AccountPage}/>
            <Route path="add" component={AccountAdd} />
            <Route path="detail/:id" component={AccountDetail} />
        </Route>
        <Route path="contacts">
            <Route path="detail/:id" component={ContactPage}/>
        </Route>
        <Route path="transmissors">
            <Route path="detail/:id" component={TransmissorPage}/>
        </Route>
        <Route path="attends" component={AttendancePage} />
        <Route path="reports" component={ReportPage} />
        <Route path="configs" component={ConfigurationPage} />
    </Route>
);
Run Code Online (Sandbox Code Playgroud)

当我将函数requireAuth放在onEnter时,控制台给出了一个错误:

Uncaught RangeError: Maximum call stack size exceeded
Run Code Online (Sandbox Code Playgroud)

我是React的先生,请耐心等待:)

我的代码出了什么问题?

javascript stack-overflow reactjs react-router

2
推荐指数
1
解决办法
4852
查看次数

Prettier 不在 React 项目中工作

我正在将我的 airbnb eslint 规则迁移到更漂亮的规则,但我遇到了一些问题。

这是我的 .eslintrc:

{
  "parserOptions": {
    "ecmaVersion": 6
  },
  "env": {
    "browser": true,
    "node": true
  },
  parser: "babel-eslint",
  "plugins": ["prettier", "react"],
  "rules": {
    "prettier/prettier": [
      "error",
      {
        "singleQuote": true,
        "semi": true
      }
    ]
  },
  "extends": ["eslint:recommended", "prettier", "prettier/react"]
}
Run Code Online (Sandbox Code Playgroud)

通过此设置,我在 App.jsx 文件中遇到了这些错误:

'React' 已定义但从未使用过。(没有未使用的变量)

'Header' 已定义但从未使用。(没有未使用的变量)

import React from 'react';
import style from './App.scss';
import Header from '../header/Header';

const App = () =>
  <div className={style.wrapper}>
    <Header />
  </div>;

export default App;
Run Code Online (Sandbox Code Playgroud)

reactjs eslint prettier

2
推荐指数
4
解决办法
4706
查看次数

通过反应状态控制音频标签

我的反应组件有这个代码:

componentDidMount() {
    this.setState({
      audioContainer: document.getElementById('audio'),
    });
  }
Run Code Online (Sandbox Code Playgroud)

在需要时我会运行一些动作:

this.state.audioContainer.start()
Run Code Online (Sandbox Code Playgroud)

我认为这不是最好的选择.

按照上面的解决方案我做了这个:

从'react'导入React; 从'prop-types'导入PropTypes;

class AudioControl extends React.Component {

  componentDidMount() {
    if (this.props.start) {
      this.start();
    }
  }

  componentWillReceiveProps({ start }) {
    if (start !== this.props.start && start === true) {
      this.start();
    }
  }

  start() {
    this._audio.start();
  }

  render() {
    return (
      <audio ref={a => this._audio = a}>
        <source src="url" type="audio/mp3" />
      </audio>
    );
  }
}

AudioControl.defaultProps = {
  start: false,
};

AudioControl.propTypes = {
  start: PropTypes.bool,
};


export default AudioControl; …
Run Code Online (Sandbox Code Playgroud)

reactjs

1
推荐指数
1
解决办法
1081
查看次数