javascript - 如何根据 Prop 更改我的类(class)渲染?

标签 javascript reactjs

我目前正在创建一个表单。有一个文本输入。如果用户写错了邮政编码,我想显示一个禁用的下拉选择。如果用户输入了正确的邮政编码,下拉菜单将被启用并从 restful API 请求数据。

问题是:我正在发送一个“已禁用”的 Prop ,但显然它不起作用。

class SelectJob extends React.Component {
    constructor(props){
        super(props);
        this.state = {
            jobList:[],
            selectedJob:'default',
            loading:false,
            disabled:true
        }
        this.getJobs = this.getJobs.bind(this);
        this.jobHandler = this.jobHandler.bind(this);

    }

.
.
.

componentDidMount(){
            this.getJobs();
            this.setState({disabled:this.props.disabled});
};


render(){
        return(
            <MDBRow>
                <MDBCol sm="2">
                    {this.state.loading && <FontAwesomeIcon className="align-middle" spin icon={faSpinner}/>}
                </MDBCol>
                <MDBCol>
                    <select
                        disabled={this.state.disabled == true ? true : false}
                        id="jobId"
                        className="browser-default custom-select"
                        onChange={this.jobHandler}
                        value={this.state.selectedJob}>

                        <option disabled value="default">Profissão</option>
                        {!this.state.loading && this.state.jobList.map(
                            (job) => <option value={job.code} key={job.code}>{job.desc}</option>)
                        }
                    </select>
                </MDBCol>
            </MDBRow>
        )
    }

没有错误,但禁用不起作用。 它保持启用状态。

render(){
        let selectJobAlias;

        if (this.state.setted === true){
            selectJobAlias = <SelectJob disabled="false" addressPostCode={this.state.addressPostCode}/> 
        }
        else {
            selectJobAlias = <SelectJob disabled="true" addressPostCode={this.state.addressPostCode}/>
        }

最佳答案

    <select
 disabled={this.state.disabled ? true : null}
                            id="jobId"
                            className="browser-default custom-select"
                            onChange={this.jobHandler}
                            value={this.state.selectedJob}>

关于javascript - 如何根据 Prop 更改我的类(class)渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58225571/

相关文章:

javascript - 使用 React 和 NodeJS 的注册表单 - 我的 axios 请求出了什么问题?

reactjs - 测试 redux 的 ConnectedComponent

javascript - 从 javascript 访问 json 元素

javascript - ajax 请求后新添加的按钮没有运行他应该运行的事件

javascript - 将一个 JavaScript 文件包含在另一个 JavaScript 文件中

javascript - 使用参数 id react 路由器路由

javascript - 将 Jenkins 用于基于 Gulp 的项目

reactjs - 从开关加载组件时,Material-UI Slider 不拖动

reactjs - 如何使用 react.js 设置 SameSite-None

javascript - 允许用户从 0.5 到 5 打分