2016-02-18 21 views
0

我正在使用ReactJs构建我的Web应用程序。应用程序有一个包含应用程序状态的状态变量。我的应用程序有一个功能,用户可以看到三个单选按钮(thousands, millions, actual)。当用户单击thousands单选按钮时,我需要以千位显示所有数值。同样的登录申请数百万。从对象数组中查找所有数值并执行乘法或除法

状态变量包含对象数组。每个对象都可以有自己的一组属性。每个属性可以是数字,对象,布尔或字符串。

我想要什么:我想去过的每个属性,检查它是否是数字类型,如果是真的,在千元单选按钮的情况下,除以1000的每个值检查(类似于逻辑万次按键)。

什么是达到理想效果的最有效方法。

+0

能粘贴状态变量和示例你想得到的输出? – JesusTinoco

回答

0

用于格式化,请使用类似https://www.npmjs.com/package/format-number的东西。

在渲染您的组件的功能,使用array.filter过滤掉任何非数字值,然后将结果映射到类似renderValue功能。在此功能中,检查当前所选择的格式,这将是this.state.formatter(我会得到它的第二个)保存在状态。使用format-number软件包和this.state.formatter的格式化程序来格式化您的值并显示它。

过滤看起来类似于: this.props.values.filter((value) => !isNaN(value)).map(this.renderValue)

当涉及到你的格式设置状态,创建<Input type="radio" name="format" value={1000} onChange={this.handleChange}/>和你handleChange功能:

handleChange: function(event) { 
    this.setState({formatter: event.target.value}); 
}