reactjs - Material-ui:输入改变选项卡的 this.state.value

标签 reactjs material-ui

我正在将 Material-UI 用于 React 应用程序。我正在使用可控 TabsTab 组件。在推荐的设置中,this.state.value 用于确定打开哪个选项卡。当我在选项卡内的 input 字段中输入文本时,它会将 this.state.value 更改为 SyntheticEvent。即使输入框位于单独的组件中,也会发生这种情况。结果,当前选项卡被关闭。我想阻止输入文本关闭当前选项卡。请提出建议?

var React = require('react');
var Tabs = require('material-ui/lib/tabs/tabs');
var Tab = require('material-ui/lib/tabs/tab');

module.exports = React.createClass({
    getInitialState() {
        return {
            value: 'newGoal'
        };
    },
    handleChange(value) {
        this.setState({
            value: value
        });
    },
    render() {
        console.log("this.state.value at TABS:", this.state.value);
        return (
            <Tabs
                value={this.state.value}
                onChange={this.handleChange}
            >
                <Tab label="New Goal" value="newGoal" >
                    <input></input>
                </Tab>
                <Tab label="Existing Goal" value="existingGoal">
                </Tab>
            </Tabs>
        )
    }
});

最佳答案

您被 this issue 击中。解决这个问题的一种简单方法是在handleChange中进行类型检查,例如 -

handleChange(value) {
    if (typeof value != "string"){
        return;
    }
    this.setState({
        value: value
    });
},

关于reactjs - Material-ui:输入改变选项卡的 this.state.value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34889194/

相关文章:

reactjs - 后端有响应式编程的框架吗?

javascript - 使用 javascript 打开下载的 zip 文件时出现问题

javascript - 将 ref 动态分配给 textarea,但它返回最后一个字段值。

javascript - Material UI Card box-shadow 被 chop

reactjs - 来自 material-ui 的 DataTables 分页不起作用

javascript - 如何在 React 中使用 Material UI 定义背景图像来填充屏幕并删除左侧和右侧的边缘?

reactjs - 隐藏导航栏功能不起作用 useLocation

reactjs - 按小数对齐数值 Material ui 表 react

reactjs - 不处理 MUI 的 Select 内的 IconButton 的点击

javascript - react native 中的 2 列