LocaleProvider 国际化

如果项目中使用的是 1.x 版本的基础组件(@alifd/next),请在左侧导航顶部切换组件版本。

安装方法

  1. 在命令行中执行以下命令npm install @icedesign/base@latest -S

代码示例

基本

使用LocaleProvider包裹组件。

LocaleProvider 国际化 - 图1

查看源码在线预览

  1. import { LocaleProvider, Select } from "@icedesign/base";
  2. /* eslint-disable react/no-multi-comp */
  3. // 组件
  4. class MyComponent extends React.Component {
  5. static propTypes = {
  6. locale: React.PropTypes.object
  7. };
  8. render() {
  9. const { locale } = this.props;
  10. return <div ref="div">{locale.content}</div>;
  11. }
  12. }
  13. const LocaleMyComponent = LocaleProvider(MyComponent);
  14. LocaleMyComponent.LOCALE = {
  15. "en-us": {
  16. content: "en-us"
  17. },
  18. "zh-cn": {
  19. content: "zh-cn"
  20. }
  21. };
  22. // 应用
  23. class App extends React.Component {
  24. constructor(props) {
  25. super(props);
  26. this.state = {
  27. lang: "zh-cn"
  28. };
  29. this.handleChange = this.handleChange.bind(this);
  30. }
  31. handleChange(lang) {
  32. this.setState({
  33. lang
  34. });
  35. // 获取被包裹组件的引用
  36. console.log(this.refs["locale-my-component"].getInstance());
  37. }
  38. render() {
  39. const { lang } = this.state;
  40. return (
  41. <div>
  42. <Select
  43. style={{ marginBottom: "20px" }}
  44. value={lang}
  45. onChange={this.handleChange}
  46. >
  47. <Option value="zh-cn">zh-cn</Option>
  48. <Option value="en-us">en-us</Option>
  49. </Select>
  50. <LocaleMyComponent language={lang} ref="locale-my-component" />
  51. </div>
  52. );
  53. }
  54. }
  55. ReactDOM.render(<App />, mountNode);

相关区块

LocaleProvider 国际化 - 图2

暂无相关区块