Как получить доступ к текущим языковым настройкам в приложении реакции с использованием реагирования - PullRequest
0 голосов
/ 14 февраля 2019

Я использую react-intl, чтобы интернационализировать мое приложение реакции.Я хочу получить доступ к текущей выбранной локали, чтобы установить Accept-Language при отправке запросов API, в настоящее время я использую код ниже получить его в компоненте реакции:

import React, { Component } from 'react';
import { intlShape, injectIntl } from "react-intl";

class CurrentLocale extends Component {

    constructor(props) {
        super(props);
    }

    render() {

        const intl = this.props.intl;

        return (

            <p>{intl.locale}</p>

            );

    }

}

CurrentLocale.propTypes = {
    intl: intlShape.isRequired
};


export default injectIntl(CurrentLocale);

, но как я могу получить его примерно так?

import axios from 'axios';
import AppConfig from 'Constants/AppConfig';

 // I need something like intl to use intl.locale while sending requests...
    export default
        axios.create({
            baseURL: AppConfig.apiUrl,
            timeout: 5000,
            headers: {
                post: {        
                    'Content-Type': 'application/json;',
                    'Accept': 'application/json;',
                    'Accept-Language': 'fa-IR,en-US' // here i want to change this
                },
                get: {

                    'Content-Type': 'application/json;',
                    'Accept': 'application/json;',
                    'Accept-Language': 'fa-IR,en-US'// here i want to change this
                }
            }
        });

1 Ответ

0 голосов
/ 16 февраля 2019

Вы можете сделать что-то вроде:

export default intl => {
  axios.create({
    baseURL: AppConfig.apiUrl,
    timeout: 5000,
    headers: {
      post: {
        "Content-Type": "application/json;",
        Accept: "application/json;",
        "Accept-Language": intl
      },
      get: {
        "Content-Type": "application/json;",
        Accept: "application/json;",
        "Accept-Language": intl
      }
    }
  });
};

И в своем компоненте просто вызовите эту функцию.

class SomeComponent {
  sendRequest = () => {
    await send(this.props.intl);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...