React Redux Localize только возвращая первую букву - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь использовать реактивный редукс, но я столкнулся с проблемой.Следующий код отображает только первую букву «T», а не все слова «Test».Отладчик Redux показывает все «Test».Как это может быть?

Index.js:

import React from 'react';
import ReactDOM from 'react-dom';
import App from './app';
import { localizeReducer } from 'react-localize-redux';
import { combineReducers, createStore } from 'redux';
import { LocalizeProvider } from "react-localize-redux";

const store = createStore(
    combineReducers({localize: localizeReducer})
);

ReactDOM.render(
    <LocalizeProvider store={store}>
        <App />
    </LocalizeProvider>,

    document.getElementById('root'));

App.js:

import React, { Component } from 'react';
import { Translate, withLocalize } from "react-localize-redux";
import { renderToStaticMarkup } from 'react-dom/server';

class App extends Component {
    constructor(props) {
        super(props);

        this.props.initialize({
            languages: [
              { name: "English", code: "en" }
            ],
            options: { renderToStaticMarkup }
        });

        let english = {
            abc: "Test"
        }

        this.props.addTranslation(english);
    }

    render() {
        return <Translate id="abc" />;
    }
}

export default withLocalize(App);

1 Ответ

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

Если вы хотите добавить перевод только для одного языка, вы должны использовать addTranslationForLanguage .В этом формате используется один язык:

let english = {
  abc: "Test"
}

this.props.addTranslationForLanguage(english, 'en');

addTranslation следует использовать при использовании нескольких языков.Для этого API требуются данные в all-language-format , поэтому вы должны сделать что-то вроде этого массива для нескольких языков:

let translations = {
  abc: ["Test"]
}

this.props.addTranslationForLanguage(translations);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...