У меня есть очень простая настройка для галереи файлов, которую я делаю, которая включает главный компонент и два подкомпонента. Предварительный просмотр изображения, разумеется, имеет стрелки влево и вправо, которые передаются и передаются обратно, функция, творчески называемая «clickHandler», которая просто обновляет состояние просматриваемого файла.
Однако при вызове события clickHandler и создании временной переменной для изменения и отправки обратно в состояние приложение вылетает при ошибке _this.state.activeFile is not a function
.
Странная часть этого, однако, в том, что состояние полностью читаемо. Он может console.log()
отлично работать, и только при попытке присвоить его переменной для изменения выдает ошибку.
Вот подкомпонент, который проходит нормально:
<FileView
file={this.props.media[this.state.activeFile]}
handler={this.clickHandler}
active={this.state.activeFile}
max={this.props.media.length}
/>
Подробнее: https://i.imgur.com/BGNqtp7.png
А вот где метод вызывается.
state={
activeFile: 2
}
clickHandler=(direction)=>{
console.log (this.state); // > Object { activeFile: 2 }
console.log (this.state.activeFile); // > 2
let temp = (this.state.activeFile) // ? TypeError: _this.state.activeFile is not a function
// vvv Likely unrelated, but posted also for context
// evals left or right to plus or minus
(direction==="prev"?temp-=1:(direction==="next"?temp+=1:""))
this.setState({activeFile: temp})
}
Подробнее: https://i.imgur.com/okvE7T3.png
Как видите, данные присутствуют и читаются, но не могут быть назначены. Я никогда не видел ничего подобного, и попробовал множество решений, таких как this.state["activeFile"]
, но безрезультатно.
Этот действительно бросает меня в тупик, заранее благодарен за любую помощь!
Контент-непрофессиональный прототип Codepen для демонстрации:
https://codepen.io/Jop/pen/vvJrqv