У меня проблема с обновлением компонента в React. Мой компонент Autocomplete имеет свойство defaultValue которое связано с this.state.tags . Во время выполнения метода render() массив this.state.tags еще не this.state.tags , поэтому он устанавливается пустым в компоненте. Если this.state.tags массива this.state.tags задано значение, из которого оно this.state.tags Autocomplete не обновляется React.

 constructor(props) { super(props); this.state = { tags:[], all_tags:[{tag: "init"}] }; } 
 componentDidMount() { axios.post('http://localhost:1234/api/issue/getIssueById', {id: this.props.match.params.id}, { withCredentials: true }) .then(res={amp}gt;{ var arr = []; res.data.tags.forEach(x={amp}gt;{ arr.push({tag: x}); }); this.setState((state,props)={amp}gt;{return {tags: arr}}); }) .catch((e)={amp}gt;{console.log(e)}); } 
 render() { return ( {amp}lt;Fragment{amp}gt; {amp}lt;Autocomplete multiple defaultValue={this.state.tags[0]} onChange={(event, value) ={amp}gt; console.log(value)} id="tags-standard" options={this.state.all_tags} getOptionLabel={option ={amp}gt; option.tag} renderInput={params ={amp}gt; ( {amp}lt;TextField {...params} variant="standard" label="Multiple values" placeholder="Favorites" fullWidth /{amp}gt; )} /{amp}gt; {amp}lt;/Fragment{amp}gt; ); } 

Редактировать: если я помещу это в render() :

  setTimeout(()={amp}gt;{ console.log("this.state.tags: ", this.state.tags); }, 1000); 

this.state.tags установлен правильно.

Во-первых, вам нужно использовать this.state.tags качестве параметров автозаполнения.

Во-вторых, использование setState кажется проблематичным.

И наконец, если вам нужно заполнить все теги в рендере, вам нужно использовать свойство value компонента Autocomplete .

 import React, { Fragment, Component } from "react"; import { fetchTags } from "./fakeApi"; import Autocomplete from "@material-ui/lab/Autocomplete"; import TextField from "@material-ui/core/TextField"; class App extends Component { constructor(props) { super(props); this.state = { tags: [], selectedTags: [], all_tags: [{ tag: "init" }] }; } componentDidMount() { fetchTags() .then(res ={amp}gt; { let allTags = res.data.tags.map(el ={amp}gt; ({ tag: el })); this.setState({ tags: allTags, selectedTags: allTags }); }) .catch(e ={amp}gt; { console.log(e); }); } onChange = value ={amp}gt; { this.setState({ selectedTags: value }) } render() { return ( {amp}lt;Fragment{amp}gt; {amp}lt;Autocomplete multiple value={this.state.selectedTags} onChange={(event, value) ={amp}gt; this.onChange(value)} id="tags-standard" options={this.state.tags} getOptionLabel={option ={amp}gt; option.tag} renderInput={params ={amp}gt; ( {amp}lt;TextField {...params} variant="standard" label="Multiple values" placeholder="Favorites" fullWidth /{amp}gt; )} /{amp}gt; {amp}lt;/Fragment{amp}gt; ); } } export default App; 

Рабочий образец Codesandbox с поддельным API.

Вы используете options={this.state.all_tags} а в componentDidMount вы обновляете поле tags в состоянии. Я думаю, что есть проблема.