Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.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_React Hooks_React Select - Fatal编程技术网

Reactjs 反应选择始终重新渲染,即使在更改其他状态时也是如此

Reactjs 反应选择始终重新渲染,即使在更改其他状态时也是如此,reactjs,react-hooks,react-select,Reactjs,React Hooks,React Select,反应选择始终重新渲染,即使在更改其他状态时也是如此 ... const [expense_currency, setExpenseCurrency] = React.useState(expense_claim.expense_currency); const [remarks, setRemarks] = React.useState(expense_claim.remarks); ... ... return ( ... <div clas

反应选择始终重新渲染,即使在更改其他状态时也是如此

...
  const [expense_currency, setExpenseCurrency] = React.useState(expense_claim.expense_currency);
  const [remarks, setRemarks] = React.useState(expense_claim.remarks);
  ...
  ...
  return (
     ...
        <div className="form-group row p-0 col-sm-12 col-md-6">
           <label className="text-nowrap col-form-label col-sm-4">Currency</label>
           <div className="col-sm-8 p-0" title={expense_currency}>
              <Select
                  className="select2"
                  placeholder="Select Currency"
                  isDisabled={false}
                  isClearable={true}
                  value={expense_currency}
                  options={select_currency}
                  onChange={selected => { setExpenseCurrency(selected.value) }}
              />
           </div>
        </div>
        <div className="form-group row p-0 col-sm-12 col-md-6">
           <label className="text-nowrap col-form-label col-sm-4">
              Remarks
           </label>
           <div className="col-sm-8 p-0">
              <textarea
                 className="form-control"
                 required={true}
                 disabled={false}
                 name="remarks"
                 placeholder=""
                 defaultValue={remarks}
                 onChange={e => setRemarks(e.target.value)}
              ></textarea>
          </div>
      </div>
  )
。。。
const[expense\u currency,setExpenseCurrency]=React.useState(expense\u claim.expense\u currency);
const[备注,set备注]=React.useState(费用\索赔备注);
...
...
返回(
...
通货
{setExpenseCurrency(selected.value)}
/>
评论
设置备注(e.target.value)}
>
)
我的chrome react分析器中的SS

我已尝试选择v2.0.0到v.2.4.4,它们都有相同的结果。
我能知道如何在更新备注字段时不重新显示吗?

这取决于
Select
是否使用PureComponent或memo()或类似的东西。但是如果是这样,那么每次传入的道具都会中断检查,因为您正在为onChange每次渲染创建回调

要获得一致的回调引用,请使用:

并将其传递给:

onChange={onSelectChange}
如果
选择\u currency
是非原语,例如数组或对象,则需要确保也是一致的引用。你没有发布,所以我不能提供建议

onChange={onSelectChange}