Material-UI Rating returns 字符串而不是数字
Material-UI Rating returns string instead of number
我 运行 遇到 Material UI 评级组件的问题。
我希望它在更改时 return 是一个数字,但它 return 是一个字符串。我提供的初始值 (this.props.data.feelings_rating) 是一个数字,但每当我在我的应用程序中更改它时,它就会变成一个字符串。这是相关代码:
评分组件:
<Rating
value={this.props.data.feelings_rating}
name="feelings_rating"
onChange={handleChange}
size="large"
getLabelText={(value) => customIcons[value].label}
IconContainerComponent={IconContainer}
/>
处理变化:
handleChange = (e) => {
var diary = this.state.diary
diary[e.name] = e.value
this.setState({diary: diary})
}
与图标有关的其他内容:
const customIcons = {
1: {
icon: <SentimentVeryDissatisfiedIcon />,
label: 'Very Dissatisfied',
},
2: {
icon: <SentimentDissatisfiedIcon />,
label: 'Dissatisfied',
},
3: {
icon: <SentimentSatisfiedIcon />,
label: 'Neutral',
},
4: {
icon: <SentimentSatisfiedAltIcon />,
label: 'Satisfied',
},
5: {
icon: <SentimentVerySatisfiedIcon />,
label: 'Very Satisfied',
},
};
function IconContainer(props) {
const { value, ...other } = props;
return <span {...other}>{customIcons[value].icon}</span>;
}
IconContainer.propTypes = {
value: PropTypes.number.isRequired,
};
我在互联网上找不到其他人遇到这个问题,所以有人能发现我做错了什么吗?任何答案将不胜感激。
评分组件的onChange
给你2个参数,一个是事件对象,另一个是实际值。您可以从第二个参数 newValue
中检索选定的值
handleChange = (e, newValue) => {
// create a copy of the state
const clonedDiary = {...this.state.diary}
// now mutate the clonedDiary directly
clonedDiary[e.name] = newValue;
this.setState({diary: clonedDiary })
}
参考
我 运行 遇到 Material UI 评级组件的问题。
我希望它在更改时 return 是一个数字,但它 return 是一个字符串。我提供的初始值 (this.props.data.feelings_rating) 是一个数字,但每当我在我的应用程序中更改它时,它就会变成一个字符串。这是相关代码:
评分组件:
<Rating
value={this.props.data.feelings_rating}
name="feelings_rating"
onChange={handleChange}
size="large"
getLabelText={(value) => customIcons[value].label}
IconContainerComponent={IconContainer}
/>
处理变化:
handleChange = (e) => {
var diary = this.state.diary
diary[e.name] = e.value
this.setState({diary: diary})
}
与图标有关的其他内容:
const customIcons = {
1: {
icon: <SentimentVeryDissatisfiedIcon />,
label: 'Very Dissatisfied',
},
2: {
icon: <SentimentDissatisfiedIcon />,
label: 'Dissatisfied',
},
3: {
icon: <SentimentSatisfiedIcon />,
label: 'Neutral',
},
4: {
icon: <SentimentSatisfiedAltIcon />,
label: 'Satisfied',
},
5: {
icon: <SentimentVerySatisfiedIcon />,
label: 'Very Satisfied',
},
};
function IconContainer(props) {
const { value, ...other } = props;
return <span {...other}>{customIcons[value].icon}</span>;
}
IconContainer.propTypes = {
value: PropTypes.number.isRequired,
};
我在互联网上找不到其他人遇到这个问题,所以有人能发现我做错了什么吗?任何答案将不胜感激。
评分组件的onChange
给你2个参数,一个是事件对象,另一个是实际值。您可以从第二个参数 newValue
handleChange = (e, newValue) => {
// create a copy of the state
const clonedDiary = {...this.state.diary}
// now mutate the clonedDiary directly
clonedDiary[e.name] = newValue;
this.setState({diary: clonedDiary })
}
参考