reactjs React芯片输入字段

fv2wmkja  于 2023-03-17  发布在  React
关注(0)|答案(3)|浏览(159)

我正在使用React 17,并尝试使用不同的芯片输入字段,如material-ui-chip-input等。不幸的是,我尝试的所有npm包都不能与react版本17一起工作。
你知道有什么组件可以和这个版本一起工作吗?或者我怎么自己创建一个?
先谢了
编辑:我已经设法做了我想要的,但不幸的是,我现在得到以下错误时,按回车/添加一个新的项目:
index.js:1警告:呈现其他组件(ForwardRef(Autocomplete))时无法更新组件(CreatePoll
下面是显示问题的代码和框:https://codesandbox.io/s/compassionate-greider-wr9wq?file=/src/App.tsx

ee7vknir

ee7vknir1#

你为什么不用这个来代替一个新的包呢?自动完成程序就是这么做的。

const [receivers, setReceivers] = React.useState<string[]>([]);

    import Autocomplete from '@mui/material/Autocomplete';
         <Autocomplete
            multiple
            onChange={(e, value) => setReceivers((state) => value)}
            id="tags-filled"
            options={top100Films.map((option) => option.title)}
            defaultValue={[top100Films[13].title]}
            freeSolo
            renderTags={(value, getTagProps) =>
              value.map((option, index) => (
                <Chip variant="outlined" label={option} {...getTagProps({ index })} />
              ))
            }
            renderInput={(params) => (
              <TextField
                {...params}
                variant="filled"
                label="freeSolo"
                placeholder="Favorites"
              />
            )}
          />
bihw5rsg

bihw5rsg2#

import React from 'react'
import { MuiChipsInput } from 'mui-chips-input'

const MyComponent = () => {
  const [chips, setChips] = React.useState([])

  const handleChange = (newChips) => {
    setChips(newChips)
  }

  return (
    <MuiChipsInput value={chips} onChange={handleChange} />
  )
}

来源:https://github.com/viclafouch/mui-chips-input

  • 同时支持React 17 / 18和MUI V5*
c3frrgcw

c3frrgcw3#

使用AutocompletefreeSolo属性,只需将options属性设置为一个空数组:

<Autocomplete
    multiple
    freeSolo
    value={value}
    options={[]}
    renderTags={(value, getTagProps) =>
      value.map((option, index) => (
        <Chip label={option} {...getTagProps({ index })} onDelete={()=> /* remove option from value array */} />
      ))
    }
    renderInput={params => (
      <TextField
        {...params}
        variant="outlined"
        label="Add Chip"
        placeholder="Type and press enter"
      />
    )}
  />

相关问题