Skip to content

Conversation

liangqing
Copy link

#85

@coveralls
Copy link

Coverage Status

Coverage decreased (-1.08%) to 74.622% when pulling 28e7351 on liangqing:master into 51d1834 on react-component:master.

@coveralls
Copy link

Coverage Status

Coverage decreased (-0.8%) to 74.925% when pulling d15fdf2 on liangqing:master into 51d1834 on react-component:master.

@yiminghe
Copy link
Member

yiminghe commented May 9, 2016

不增加这种功能了,用 rc-form 提示即可。

@yiminghe yiminghe closed this May 9, 2016
@kylezhang
Copy link

@yiminghe 真心需要这么个small feature,因为只用Popover提示还不够,虽然提示了,但是用户还是会继续select

@yiminghe
Copy link
Member

@kylezhang
Copy link

kylezhang commented May 24, 2016

@yiminghe 试着控制了,我认为可以在onchange和onselect中控制呢,结果非也,原因如下:

  • 在onchange接受到的value,已经把超出的option item(不再需要的item)拼接好了之后的新数组了,
  • 在select中也是基本一样,因为不管我select做什么样正常的控制操作,源码都是会继续往下,把新选择的option item添加到数组中。
    其实我现在觉得上面两种的控制无效原因都是这句代码props.onSelect(event, item);的原因:
    完整代码如下;
 onMenuSelect({ item }) {
    let value = this.state.value;
    const props = this.props;
    const selectedValue = getValuePropValue(item);
    const selectedLabel = this.getLabelFromOption(item);
    let event = selectedValue;
    if (props.labelInValue) {
      event = {
        key: event,
        label: selectedLabel,
      };
    }
    props.onSelect(event, item);
    if (isMultipleOrTags(props)) {
      if (findIndexInValueByKey(value, selectedValue) !== -1) {
        return;
      }
      value = value.concat([{
        key: selectedValue,
        label: selectedLabel,
      }]);
    } else {
      if (value.length && value[0].key === selectedValue) {
        this.setOpenState(false, true);
        return;
      }
      value = [{
        key: selectedValue,
        label: selectedLabel,
      }];
      this.setOpenState(false, true);
    }
    this.fireChange(value);
    this.setState({
      inputValue: '',
    });
    if (isCombobox(props)) {
      this.setState({
        inputValue: getPropValue(item, props.optionLabelProp),
      });
    }
  },

@yiminghe
Copy link
Member

need demo http://codepen.io/yiminghe/pen/dMxwNQ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants