Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用道具的值确定要显示的内容_Reactjs - Fatal编程技术网

Reactjs 使用道具的值确定要显示的内容

Reactjs 使用道具的值确定要显示的内容,reactjs,Reactjs,如果reasonId=2,我试图显示一个必需的textfield,否则如果reasonId为 任何其他号码。我如何使用if语句或任何更短的方式来编写它 <div className='row'> <div className='col-xs-12'> {props.selectedReason.reasonId === 2 && <TextField

如果reasonId=2,我试图显示一个必需的textfield,否则如果reasonId为 任何其他号码。我如何使用if语句或任何更短的方式来编写它

        <div className='row'>
            <div className='col-xs-12'>
              {props.selectedReason.reasonId === 2 &&
                <TextField
                  required
                  multiline
                  className='text-area'
                  fullWidth
                  value={props.selectedReason.reason}
                  onChange={event => {
                    props.handleChangeReason({
                      ...props.selectedReason,
                      reason: event.target.value
                    });
                  }}
                />
              }
            </div>
        </div>

{props.selectedReason.reasonId==2&&
{
道具。手柄更换原因({
…道具。选择原因,
原因:event.target.value
});
}}
/>
}

您可以将其提取到函数中

_text = () => {
  if (props.selectedReason.reasonId === 2) {
    return (
      <TextField
        required
        multiline
        className='text-area'
        fullWidth
        value={props.selectedReason.reason}
        onChange={event => {
          props.handleChangeReason({
            ...props.selectedReason,
            reason: event.target.value
          });
        }}
      />
    )
  }

  return null
}


<div className='row'>
    <div className='col-xs-12'>
      {this._text()}
    </div>
</div>
\u text=()=>{
if(props.selectedReason.reasonId==2){
返回(
{
道具。手柄更换原因({
…道具。选择原因,
原因:event.target.value
});
}}
/>
)
}
返回空
}
{this._text()}
我如何使用if语句或任何更短的方式来编写它

        <div className='row'>
            <div className='col-xs-12'>
              {props.selectedReason.reasonId === 2 &&
                <TextField
                  required
                  multiline
                  className='text-area'
                  fullWidth
                  value={props.selectedReason.reason}
                  onChange={event => {
                    props.handleChangeReason({
                      ...props.selectedReason,
                      reason: event.target.value
                    });
                  }}
                />
              }
            </div>
        </div>
如果你想要一个稍微清晰一点的方法,你可以这样做

const content = props.selectedReason.reasonId === 2 ? 
  <TextField ... /> :
  null;

return (
  <div className='row'>
    <div className='col-xs-12'>{content}</div>
  </div>
);

要有条件地为文本字段设置必填字段,请执行以下操作:

  <div className='row'>
        <div className='col-xs-12'>
          {props.selectedReason.reasonId === 2 &&
            <TextField
              required={props.selectedReason.reasonId === 2}
              multiline
              className='text-area'
              fullWidth
              value={props.selectedReason.reason}
              onChange={event => {
                props.handleChangeReason({
                  ...props.selectedReason,
                  reason: event.target.value
                });
              }}
            />
          }
        </div>
    </div>

{props.selectedReason.reasonId==2&&
{
道具。手柄更换原因({
…道具。选择原因,
原因:event.target.value
});
}}
/>
}
代码段:

类应用程序扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
必填项:true
}
this.makeRequired=this.makeRequired.bind(this);
this.submitForm=this.submitForm.bind(this);
}
makeRequired(事件){
event.preventDefault();
this.setState(prevState=>({
必需:!prevState.required
}));
}
提交表单(事件){
//event.preventDefault();
}
render(){
返回(
提交
将{this.state.required&'Not'}设为required
);
}
}
render(,document.getElementById(“根”))


react文档就是这么建议的,我认为没有理由改变我不明白你的意思。必须有一种方法可以使用if语句来编写。在这里读这份文件