我没有从反应0.13升级到最新的。这里列出了我改变的依赖关系。反应更新intl不工作:未捕获ReferenceError:找不到Intl邮件:
react: 0.13.3 -> 0.14.3
react-dom: none -> 0.14.3
react-router: 0.13.3 -> 1.0.3
react-history: none -> 1.0.3
react-intl: 1.2.0 -> 1.2.2
intl: 1.0.0 -> 1.0.1
但我无法再次获得翻译工作。
未捕获的ReferenceError:找不到国际消息:测试
// app.js
var React = require('react');
var ReactDom = require('react-dom');
var Router = require('react-router').Router;
var routes = require('./routes');
var createHistory = require('history').createHistory;
var intlData = {
locales: 'en',
messages: {
test: 'Test'
}
};
ReactDom.render(<Router history={createHistory()} intl={intlData}>{routes}</Router>, document.getElementById('app'));
// Test.js
var React = require('react');
var ReactIntl = require('react-intl');
var IntlMixin = ReactIntl.IntlMixin;
var Test = React.createClass({
mixins: [IntlMixin],
render: function() {
return (
<div>
<h1>
{this.getIntlMessage('test')}
</h1>
</div>
);
}
});
module.exports = Test;
我是怎么在更新错过?什么是启动我的消息的正确方法。
现在尝试更新到v2,并在我的根组件的返回周围添加IntlProvider,并将intlmessage更改为对象语法,但现在出现以下错误:未捕获错误:不变违例:对象作为React子项无效:具有键{id}的对象)。如果您打算渲染一组儿童,请改用数组,或者使用React附加组件中的createFragment(object)来包装对象。检查'App'的渲染方法。# –
@AlexanderSchranz请记住,v2仍处于测试阶段;执行中可能仍然存在错误。还有一个相当广泛的[升级指南](https://github.com/yahoo/react-intl/blob/master/UPGRADE.md),你需要经过升级到v2。无论哪种方式,这里没有足够的信息来调试该特定问题。 –
这里是我目前使用的完整代码https://github.com/alexander-schranz/react-setup –