哦!天哪,这是一个很小的错误,被我当成了大错。我需要使用
props.input.value
props.input.onChange
在组件内部。所以,我的新代码应该是这样的:
import React from 'react';
import PropTypes from 'prop-types';
import ToggleButton from '@material-ui/lab/ToggleButton';
import ToggleButtonGroup from '@material-ui/lab/ToggleButtonGroup';
import { noop } from '../../utils';
const ButtonGroup = ({ options, input }) => {
return (
<ToggleButtonGroup
value={input.value}
exclusive
onChange={(event, val) => { input.onChange(val); }}
>
{
options.map(option => (
<ToggleButton value={option}>
{option}
</ToggleButton>
))
}
</ToggleButtonGroup>
);
};
ButtonGroup.propTypes = {
options: PropTypes.arrayOf(PropTypes.any),
input: PropTypes.objectOf(PropTypes.any),
};
ButtonGroup.defaultProps = {
options: [],
input: {},
};
export default ButtonGroup;
用法应保持不变。