#javascript #reactjs #properties #jsx
#javascript #reactjs #свойства #jsx
Вопрос:
Я хотел бы использовать функцию в render(), которая будет вызываться несколько раз, потому что она вызывается для каждого элемента Map() . Но по некоторым причинам моя функция распознается неправильно, я получаю сообщение об ошибке :
это.IsHeStillAlive не является функцией
Я полностью переписал свой пост, чтобы его было легче понять, и вот ссылка на мой пример в песочнице: https://codesandbox.io/s/test-uz-713xy . в этом примере я пытаюсь использовать функции «IsHeStillAlive» и «SwitchButton».
спасибо за вашу помощь.
Ответ №1:
Вы можете попробовать использовать тернарный оператор следующим образом:
<div className="slave">
<h3>{panel.price}€</h3><br/>
{
panel.name === 'Basique' ?
<Button className="buttonStore"
onClick={() => { this.UnsubcribeIt() }}>
Unsubscribe
</Button> :
<Button className="buttonStore"
onClick={() => { this.buyit(licenceName) }}>
Buy Now
</Button>
}
</div>
Или короче в первом <Button />
as onClick={this.UnsubcribeIt}
.
Комментарии:
1. Да, я уже пробовал это на самом деле, но я хочу удалить «Базовый» с помощью «This. Функция TalkToBackend ()» и она не работает ни так, ни эдак … Я отредактирую свой код
2. @Xodarap Может быть, вы можете создать CodeSandbox для упрощения отладки и справки.
3. Я постараюсь сделать его, вероятно, будет легче понять, да
4. ну, я сделал образец песочницы, но по какой-то причине он еще не работает: codesandbox.io/s/upgradefile-5p5rd
5. Я создал новый пример в песочнице, и на этот раз он работает. вы можете найти ссылку в моем отредактированном сообщении.
Ответ №2:
Я думаю, вам следует dataGet
сначала извлечь, чтобы это не сбивало с толку
render(){
let {dataGet} = this.state
return (
{this.state.dataGet.map(mapPanel)}
)
}
скажите мне, работает ли это
Комментарии:
1. Я только что попробовал, и я получаю какую-то ошибку, которую я не знаю, как исправить… «функция» выглядит как причина ошибок
2. это то, что я сделал. скажите мне, работает ли это ссылка
3. Я просто пытаюсь отредактировать свой код, как ваш пример, но получаю то же сообщение об ошибке
4. это то же самое, невозможно прочитать свойство ‘SwitchButton’ неопределенного
Ответ №3:
Кто-нибудь за пределами этого форума найдет мне решение.
Исправление находится в моей ссылке на песочницу, но если однажды линия будет отключена…
на всякий случай вот шаги, чтобы исправить мою проблему:
- переместите свои методы из класса, сделайте их компонентами функции в том же файле.
- измените параметр панели на props . Внутри реквизита будет реквизит панели
- визуализируйте компоненты, подобные
это будет не очень явно, если ссылка на песочницу мертва, но это, возможно, поможет.