Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >React-Intl:访问嵌套组件中的formatMessage

React-Intl:访问嵌套组件中的formatMessage
EN

Stack Overflow用户
提问于 2018-02-07 16:37:04
回答 1查看 2.8K关注 0票数 2

问题很简单,我不敢相信我找不到解决方案(没有上下文)来解决像这样简单的情况。

我正在使用react-intl。我有一个带有子组件Index.jsx的App.jsx,它有一个带有CreateNewSomething.jsx的SideBar.jsx。

在每个组件中,命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<FormattedMessage
     id="new_object.fill_title"
     defaultMessage='Please fill the "title" parameter'
/>

多亏了App.jsx提供的<IntlProvider>,才能完美地工作

不幸的是,我不能将FormattedMessage作为组件的状态值注入。

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Input 
 s={6} 
 label={label_dash_title} 
 style={style_items_form} 
 onChange={this.onDashTitleChange} 
 onKeyPress={this.newDashHandleEnterKey}
 error= { this.state.title_error }
/>

当输入字段没有填写(是必需的)时,我想打印一条错误消息。不幸的是,我不会写:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const error_message = <FormattedMessage
            id="new_dash.fill_title"
            defaultMessage='Please fill the "title" parameter'
        />

this.setState({"title_error" : error_message});

因为我得到的是[object Object],但翻译后的消息中没有任何属性。

到处搜索,我发现我必须使用this.props.intl.formatMessage({id: 'new_dash.fill_title'});

但是this.props.intl是未定义的。

我已经尝试在App.jax中包含以下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import {addLocaleData, IntlProvider, injectIntl, intlShape} from 'react-intl';

但这并没有什么区别。

我尝试将intl作为属性传递给每个子组件,但intl在App.jsx中也没有定义。

我不知道我哪里错了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-12 15:47:44

该模块的Wiki解释了该方法,但没有说明如何使用。

解决方案很简单。您必须更改React组件的导出语法,然后this.props.intl将在组件中神奇地可用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default injectIntl(MyComponent); //WORKS!!!

不幸的是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default class injectIntl(MyComponent) extends React.Component //DOESN'T WORK
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48668889

复制
相关文章
vue组件的嵌套
组件嵌套是指在Vue.js应用程序中,将一个组件放置在另一个组件的模板中,形成层次化的结构。这种层次化结构类似于DOM树,其中顶级组件是根组件,其余组件可以作为其子组件。子组件可以进一步嵌套其他组件,形成更复杂的组件树。
堕落飞鸟
2023/05/21
1K0
如何在JavaScript中访问暂未存在的嵌套对象
JavaScript 是个很神奇的东西。但是 JavaScript中的一些东西确实很奇怪,让人摸不着头脑。其中之一就是当你试图访问嵌套对象时,会遇到这个错误
前端小智@大迁世界
2019/07/02
8.1K0
(五)在组件中访问状态
一、在组件中访问状态 store.js import { ref, computed } from 'vue' import { defineStore } from 'pinia' export const useNoteStore = defineStore('note', () => { const noteList = ref([ { // ... } ]) return { noteList
老怪兽
2023/02/22
1.7K0
如何在Vue组件中访问Vuex store中的状态?
在Vue组件中访问Vuex store中的状态,可以通过计算属性 (computed properties) 或者直接通过$store.state来实现。
王小婷
2023/10/02
3440
Vue 组件注册:基本使用和组件嵌套
除了前面介绍的基本语法之外,Vue.js 还支持通过组件构建复杂的功能模块,组件可以称得上是 Vue.js 的灵魂,是 Vue.js 框架提供的最强大的功能之一。
学院君
2023/03/03
1.6K0
Vue 组件注册:基本使用和组件嵌套
微信小程序组件如何嵌套组件
组件嵌套组件其实和页面嵌套组件使用大差不差,也是分为注册定义和调用 组件所在目录位置 组件wxml <view> 自定义组件 </view> 组件panel 组件所在目录位置 /compontents/panel/panel 在json文件中注册定义组件tabBar { "component": true, "usingComponents": { "tabBar":"/compontents/tabBar/tabBar" } } 组件wxml 在panel中使用tabBar组件 <view>
友儿
2022/09/13
1.2K0
vue组件嵌套的多层级示例
在Vue.js中,组件嵌套可以是多层级的,即一个组件可以嵌套另一个组件,而另一个组件又可以嵌套其他组件,以此类推。这种层级化结构非常有助于构建复杂的用户界面。
堕落飞鸟
2023/05/21
9210
父子组件的访问方式
不论是子组件还是父组件本质上来说他们类似于一个对象,我们不需要利用父子组件通信去交换什么数据或者信号,我们仅仅需要父组件直接访问子组件,子组件直接访问父组件,或者是子组件访问根组件,从而可以相互得到对方组件里的数据和方法,那么不必用之前的prop和自定义事件.
名字是乱打的
2021/12/23
1.3K0
父子组件的访问方式
cssjshtml vue.js 组件嵌套
/src/components/Users.vue <template> <div class="users"> <ul> <li v-for="user in users">{{user}}</li> </ul> </div> </template> <script> export default { name: "users", data() { return {users: ["brownwang", "wangzi", "hulu"]}
葫芦
2019/04/17
2.7K0
Vue递归组件:渲染嵌套评论
新出了一个系列:Vue2与Vue3 技巧小册 本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。
前端小智@大迁世界
2022/09/21
1.4K0
Vue递归组件:渲染嵌套评论
Vue-组件嵌套之——父组件向子组件传值
父组件向子组件传值步骤: 在这里先定义一下,相对本案例来说:App.vue是父组件,Second-module.vue是子组件。 一、首先,值肯定是定义在父组件中的,供所有子组件共享。所以要在父组件的
xing.org1^
2018/05/17
2.4K0
python中的嵌套类
在.NET和JAVA语言中看到过嵌套类的实现,作为外部类一个局部工具还是很有用的,今天在python也看到了很不错支持一下。动态语言中很好的嵌套类的实现,应该说嵌套类解决设计问题同时简化了程序,值得学习。
py3study
2020/01/08
3.6K0
python 中的嵌套类
能够看到 类中 又定义了 类 ,这种情况我们称之为嵌套类 。给一个简单 demo 来认识嵌套类 。
py3study
2020/01/10
4K0
微信小程序组件嵌套组件传值问题
在组件tarBar的js文件中定义接受的值,其中type为类型,value为默认值
友儿
2022/09/13
5140
cssjshtml vue.js 组件嵌套demo
components/Users.vue <template> <div class="users"> <h1>hello users</h1> <ul> <li v-for="user in users" v-on:click="user.show=!user.show"> <h2>{{user.name}}</h2> <h3 v-show="user.show">{{user.position}}</h3> </li
葫芦
2019/04/17
2K0
sql中的嵌套查询_sql的多表数据嵌套查询
测试的时候发现取出的是一条数据, 因为测试的时候是一天中的两条数据, 没有不同的日期,所以当日以为是正确的 ,然而第二天写入数据了,要取出数据,却发现没有数据, 返回空的行, 以为都是代码又有问题 了,找了半天都没有 ,仔细看看了存储过程中的代码,发现这样返回的数据的确是空的。
全栈程序员站长
2022/09/22
7.1K0
Vue案例引发的「嵌套组件」通信的简单方式
我们都知道 Vue 是采用组件化开发的模式,组件化的优势在于相对独立,易于维护,可复用。你可以把项目看成许多组件的组合而成。
六小登登
2019/03/11
8840
Vue案例引发的「嵌套组件」通信的简单方式
sql中对嵌套查询的处理原则_sql的多表数据嵌套查询
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169416.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
5.7K0
Swift代码中的嵌套命名法
Swift支持与其他类型嵌套命名,尽管它还没有专用的命名关键词。下面我们来看看,如何使用类型嵌套来优化我们代码的结构。
莫空9081
2021/03/01
1.7K0
选择块参照中嵌套的实体
在利用ObjectARX进行CAD二次开发时,如何选择块参照中嵌套的实体,并进行进行下一步操作?这个问题的难点是:如何判断用户选中的实体到底是块参照里面的非嵌套对象实体?还是块参照中嵌套的块参照的实体?本文利用全局函数acedNEnsSelP解决了这个问题,并可实现:如果用户选择块参照中嵌套的实体,直接视为用户选择了这个嵌套的块参照,效果如图。
用户3519280
2023/07/31
2651

相似问题

vb访问组件中的嵌套组件

20

访问父组件中嵌套的大子组件。

22

如何在Redux类组件中使用formatMessage

141

如何从父组件获得intl.formatMessage?

22

React-intl不能从链接组件运行

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文