Redux:我应该将日期格式化逻辑放在哪里
我的问题很简单,我应该把类似于日期格式的逻辑放在哪里 假设我有一个Redux:我应该将日期格式化逻辑放在哪里,redux,Redux,我的问题很简单,我应该把类似于日期格式的逻辑放在哪里 假设我有一个Date对象,我最终将向用户显示为01/02/2017。从日期到字符串的转换应该在哪里进行 在容器组件的MapStateTrops中 在“表示”组件中,作为视图渲染的一部分 我的状态(在存储区中)显然应该存储为日期,因为我可能需要在其他地方用不同的格式表示它,所以我需要从日期转换为字符串 1的优点是,它使呈现组件尽可能地哑 2的优点是渲染逻辑保留在呈现组件中 我不确定这种类型的逻辑属于何处(另一个例子是从Integer到Strin
Date
对象,我最终将向用户显示为01/02/2017
。从日期
到字符串
的转换应该在哪里进行
MapStateTrops
中日期
,因为我可能需要在其他地方用不同的格式表示它,所以我需要从日期
转换为字符串
1
的优点是,它使呈现组件尽可能地哑
2
的优点是渲染逻辑保留在呈现组件中
我不确定这种类型的逻辑属于何处(另一个例子是从
Integer
到String
的货币格式添加$
和.00
)。有趣的问题,我可以为这两个选项辩护。我通常会使用位于我的reducer旁边的文件中的选择器(例如,如果您使用的是“ducks”或modules),这样即使是mapstatetops
函数也是哑的
但是,如果您的容器或其某些子容器可能需要使用该属性执行任何计算,则它们将需要
日期
对象,而不是字符串。号码/钱也一样。如果您需要对数量进行汇总、汇总或减分,字符串将不起作用。有趣的问题,我可以为这两个选项辩护。我通常会使用位于我的reducer旁边的文件中的选择器(例如,如果您使用的是“ducks”或modules),这样即使是mapstatetops
函数也是哑的
但是,如果您的容器或其某些子容器可能需要使用该属性执行任何计算,则它们将需要
日期
对象,而不是字符串。号码/钱也一样。如果需要对数量进行汇总、聚合或减分,字符串将不起作用。最好将此逻辑包含在componentWillReceiveProps生命周期方法中。所以,每当您获得新的道具时,就会执行日期格式化逻辑,并更新本地组件的状态变量,该变量将依次呈现。示例代码如下所示:
class ABC extends React.Component{
constructor(props){
super(props);
this.state= { dateVar: this.props.dataVar }
}
componentWillReceiveProps(nextProps) {
//date formatting logic goes here
this.setState({ dateVar: <formatted-date> })
}
render() {
return(
<div>{this.state.dateVar}</div>
)
}
ABC类扩展了React.Component{
建造师(道具){
超级(道具);
this.state={dateVar:this.props.dataVar}
}
组件将接收道具(下一步){
//日期格式化逻辑在这里
this.setState({dateVar:})
}
render(){
返回(
{this.state.dateVar}
)
}
}最好在componentWillReceiveProps生命周期方法中包含此逻辑。所以,每当您获得新的道具时,就会执行日期格式化逻辑,并更新本地组件的状态变量,该变量将依次呈现。示例代码如下所示:
class ABC extends React.Component{
constructor(props){
super(props);
this.state= { dateVar: this.props.dataVar }
}
componentWillReceiveProps(nextProps) {
//date formatting logic goes here
this.setState({ dateVar: <formatted-date> })
}
render() {
return(
<div>{this.state.dateVar}</div>
)
}
ABC类扩展了React.Component{
建造师(道具){
超级(道具);
this.state={dateVar:this.props.dataVar}
}
组件将接收道具(下一步){
//日期格式化逻辑在这里
this.setState({dateVar:})
}
render(){
返回(
{this.state.dateVar}
)
}
}