【问题标题】:Bug with ratings value in material-ui react.jsmaterial-ui react.js 中带有评级值的错误
【发布时间】:2020-03-11 22:34:46
【问题描述】:

我有 3 组不同的评级,它们都需要独立。该错误是当单击其中一个评级时,只有第一组(首先呈现)评级发生变化。这意味着所有不同的评级集之间似乎存在联系。

与此错误有关的主要部分是名为 AssetName 的方法。

function AssetName(props) {
  let localAssetName = [];
  let streamHolder = [];
  let holder = [];

  localAssetName.push("Asset 1");
  localAssetName.push("Asset 2");
  localAssetName.push("Asset 3");
  localAssetName.push("Asset 4");
  localAssetName.push("Asset 5");
  localAssetName.push("Asset 6");

  // this.setState({ assetNameAr : localAssetName});
  // this.setState({assetTest: true})
  props.parentCallback(localAssetName);
  let displasset = function displfcn() {
    for (let i1 = 0; i1 < localAssetName.length; i1++) {
      holder.push(
        <Grid container spacing={10}>
          <Grid item>
            <Box> {localAssetName[i1]}</Box>
          </Grid>
          <Grid item p={10} ml={10}>
            {/* Technical Expertise */}
            {/* <AssetLoop len ='1'/> */}
            <Rating max={3}> </Rating>
          </Grid>

          <Grid item p={10} ml={10}>
            {/* Business Knowledge */}
            {/* <AssetLoopBN len ='1'/> */}
            <Rating max={3}> </Rating>
          </Grid>

          <Grid item>
            {/* How recently have you worked on this asset? */}
            {/* <AssetLoopREC len = '1'/> */}
            <Rating max={4}> </Rating>
          </Grid>
        </Grid>
      );
    }
  };
  displasset(localAssetName);
  return holder;
}

【问题讨论】:

  • 我为每个评分标签添加了 name = , value。这有助于将它们彼此分离。但我不知道为什么只有每组评分的第一行在点击时被更改,而不是我点击的实际评分集。
  • 嗨@Team22。你能为此提供一个codesanbox吗?
  • 我想你忘记在渲染时传递key

标签: javascript reactjs web material-ui


【解决方案1】:

Rating 的“name”属性必须是唯一的。 Similar issue on material ui's github

【讨论】:

  • 很高兴我在这乱七八糟的一小时内找到了你的答案@notAnkur!
猜你喜欢
  • 2015-06-25
  • 1970-01-01
  • 2022-08-10
  • 1970-01-01
  • 2021-11-25
  • 2020-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多