Вы не должны обновлять состояние напрямую
this.state = {
resolutionOptions: [
{ text: 'All', id: 0, value: 'all' },
{ text: 'Month', id: 1, value: 'Monthly' },
{ text: 'Day', id: 2, value: 'day' },
{ text: 'Day-Hour', id: 3, value: 'Day-Hour' },
{ text: 'Hourly (0-23)', id: 4, value: 'hourly' },
{ text: 'Day of Week', id: 5, value: 'dow' }
]
}
componentWillMount() {
this.updateResolutionText()
}
componentDidUpdate() {
// this returns correctly {text: 'Machines', id: 0, value: 'all'}
console.log(this.state.resolutionOptions[0]);
}
updateResolutionText() {
let basisList = [
{text: 'Users (ID)', id: 0, value: 'users'},
{text: 'Machines', id: 1, value: 'machines'}
];
let options = [...this.state.resolutionOptions];
let comparison = 'users';
if(basisList) {
for(let i = 0; i < basisList.length; i++) {
if(basisList[i].value === comparison) {
options[0].text = basisList[i].text // HERE
break;
}
}
}
this.setState({ resolutionOptions: options });
}
<Select2 className="form-control"
ref="resolution"
data={this.state.resolutionOptions}
defaultValue={0}>
Эта строка:
options[0].text = basisList[i].text // HERE
, чтобы вы могли избежать этого при создании нового объекта
let options = [...this.state.resolutionOptions];
Поиск по текстовым полям всегда довольно медленный. Попробуйте Полнотекстовый поиск и посмотрите, будет ли это работать лучше для вас.
Вам следует рассмотреть возможность использования полнотекстового индексирования в столбце.
If your queries are like LIKE '%string%'
(i. e. you search for a string inside a TEXT
field), then you'll need a FULLTEXT
index.
If you search for a substring in the beginning of the field (LIKE 'string%'
) and use SQL Server 2005
or higher, then you can convert your TEXT
into a VARCHAR(MAX)
, create a computed column and index this column.
See this article in my blog for performance details:
Вы можете выполнять сложные логические запросы в FTS; наподобие
содержит (yourcol, '"My first sting" или "my second string" и "my second string")
В зависимости от вашего запроса ContainsTable или freetexttable могут дать лучшие результаты.
Если вы подключаетесь Через .Net вы можете посмотреть Полнотекстовый поиск Google