【问题标题】:Material-UI AutoComlete only load values on second clickMaterial-UI AutoComplete 仅在第二次单击时加载值
【发布时间】:2020-11-12 17:10:47
【问题描述】:

在我的反应应用程序中,我有 3 个下拉列表 第一个 drop 具有主要值(例如:a,b)下一个 drop 将使用第一个 drop 中选择的值过滤数组中的值 我正在为 Dropbox 使用 ui 和 Autocomplete 材料 当我在第一个 drop 中选择值时,组件在单击时将值返回给父级,然后我用这些值调用第二个 drop

<Grid item xs={4}>
          <Dropdownlist
            required
            name='opt1'
            texto='where:'
            click={click1}
            options={options}
            optionsList1={optionsList1}
            filter='regiao'
          />
        </Grid>
        <Grid item xs={4}>
          {optionNameShow2 === 'hidden' ? null
            : <Dropdownlist
              required
              name='opt2'
              select3='hidden'
              texto='&nbsp;'
              click={click2}
              options={options2}
              valueforFilter={selectState1 ? selectState1.optionValue : ''}
              optionsList2={optionsList2}
              filter='local'
              />}
        </Grid>

问题是我第二次点击的时候才加载值。

到目前为止,问题是在 chrome 和 FF 上测试 并且应该是第一次点击。

工作示例正在运行:https://codesandbox.io/s/muddy-haze-6c1kj?file=/src/App.js

【问题讨论】:

    标签: node.js reactjs material-ui


    【解决方案1】:

    TL;DR:您的filterlists() 触发了状态更改,但if (value) {... 使用的是调用更改实际反映在当前状态之前的值。我修复了你的pastebin。

    NL;PR: setStates 计划在调用它们的函数结束后运行,因此您当前使用的值仍然在更改发生之前。用效果钩子单独处理那些setStates。

    【讨论】:

    • 你是最棒的,真的是帮助你的坦克
    猜你喜欢
    • 2022-11-11
    • 2021-11-05
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 2021-01-05
    • 2021-03-14
    • 2020-11-18
    • 1970-01-01
    相关资源
    最近更新 更多