reactjs - 如何在 Redux 类组件上格式化消息
问题描述
试图在类组件上使用“formatMessage”。
但它不起作用;
import { injectIntl } from "react-intl";
......
render() {
const {formatMessage} = this.props.intl;
return (
<div class="card card-custom">
<div class="card-header flex-wrap border-0 pt-6 pb-0">
<div class="card-title">
<h3 class="card-label">{formatMessage({ id: "LOCATION.INDEX.TITLE" })}
<span class="d-block text-muted pt-2 font-size-sm">light head and row separator</span></h3>
</div>
</div>
<div class="card-body">
<table ref="main" class="table table-striped- table-hover table-checkable" />
</div>
</div>);
}
}
export default connect(
({ auth }) => ({ authToken: auth.authToken }),
auth.actions
)(DataTable);
它返回
TypeError:无法读取未定义的属性“formatMessage”
我该如何解决这个问题?
解决方案
从文档。
你应该用injectIntl
import { injectIntl } from "react-intl";
......
render() {
const {formatMessage} = this.props.intl;
return (
<div class="card card-custom">
<div class="card-header flex-wrap border-0 pt-6 pb-0">
<div class="card-title">
<h3 class="card-label">{formatMessage({ id: "LOCATION.INDEX.TITLE" })}
<span class="d-block text-muted pt-2 font-size-sm">light head and row separator</span></h3>
</div>
</div>
<div class="card-body">
<table ref="main" class="table table-striped- table-hover table-checkable" />
</div>
</div>);
}
}
export default connect(
({ auth }) => ({ authToken: auth.authToken }),
auth.actions
)(injectIntl(DataTable)); // here we use injectIntl HOC
推荐阅读
- python - 如何跟踪点击次数而不是两次点击同一个地方
- flutter - Flutter - 从 LinearGradient() 访问颜色
- r - 在新数据框 R 中展开时间序列
- android - 使用他们提供的电话号码向用户发送带有 firebase 的消息
- php - 如何在生成的数字之间添加空格 - PHP
- google-bigquery - 如何为下表编写 Bigquery
- c++ - 这是 std::quote 错误的行为吗?
- xquery - 拆分 Xquery 中的特定字段
- python - 可变索引?Python Pandas Dataframe ValueError:无法从重复的轴重新索引
- three.js - 如何使用从硬件设备接收的加速度计和陀螺仪数据在 Three.js 中渲染 3D 对象