Reactjs 希望高阶组件在语言更改后重新呈现错误消息
我根据编写了一个高阶组件(HOC)。它包装了一个纯组件,用于渲染某种类型的图像 My HOC获取一个验证器函数作为属性。当输入值更改时,它调用验证器(newValue)。validator()返回错误消息或空白字符串。validator()方法反过来可以调用一个方法,该方法根据用户设置将错误消息转换为不同的语言 我的问题是,如果用户在显示错误消息后更改了语言,React不会以新选择的语言重新呈现错误消息,因为只有当validator()返回不同的值时才会呈现错误消息,并且只有当它所包装的输入值更改时才会调用validator()。除非我将该语言作为HOC的属性,否则HOC无法知道该语言已发生了变化 我最初编写HOC是为了接受所选语言作为属性,然后翻译它的validator()属性返回的任何错误消息,但我认为这有一种“味道”,因为混合了各种顾虑。我认为,特设委员会不应该知道当前的语言,因为这不是它关心的问题。每个validator()方法都应负责以所选语言生成错误消息。这有意义吗 我想到的一个技巧是,让changeLanguage()处理程序通过迭代子DOM中的所有输入,取消设置,然后将它们重置为当前值,从而认为所有输入都有更改。这将迫使所有validator()方法再次运行,这一次将以新选择的语言生成错误消息。当然,这是一种黑客行为。我会把一个反模式换成另一个 我知道改变语言是一种边缘现象。我打算根据Accept language HTTP头设置语言,但我读到这是不鼓励的,因为Accept language不能总是被用来反映用户的实际需求。你可以用它作为第一个猜测,但如果有不止一个选择,你必须给他一个改变的方法。这就打开了潘多拉魔盒Reactjs 希望高阶组件在语言更改后重新呈现错误消息,reactjs,internationalization,Reactjs,Internationalization,我根据编写了一个高阶组件(HOC)。它包装了一个纯组件,用于渲染某种类型的图像 My HOC获取一个验证器函数作为属性。当输入值更改时,它调用验证器(newValue)。validator()返回错误消息或空白字符串。validator()方法反过来可以调用一个方法,该方法根据用户设置将错误消息转换为不同的语言 我的问题是,如果用户在显示错误消息后更改了语言,React不会以新选择的语言重新呈现错误消息,因为只有当validator()返回不同的值时才会呈现错误消息,并且只有当它所包装的输入值更
有什么建议吗?我可以回答我自己的问题
HOC呈现错误消息。我可以将该部分分解为它自己的React组件,并赋予它language属性,以便在语言更改时重新渲染。轻松点 我可以回答我自己的问题 HOC呈现错误消息。我可以将该部分分解为它自己的React组件,并赋予它language属性,以便在语言更改时重新渲染。轻松点