Как скрыть элемент, если вспышка не была обнаружена в React JSX

114
10

Я пытаюсь скрыть элемент, если Flash не обнаружен в браузере. скажем, что это выглядит примерно так. Я в React и использую JSX.

export default class MyComponent extends Component {
// Some code here

render() {
// some code here

return (
<div>
<div>
<span>I am going to show no matter if flash is detected or not</span>
</div>
<div>
<span>I am not going to show if flash has not been detected</span>
</div>
</div>
)
}
}

спросил(а) 2016-04-23T02:16:00+03:00 4 года, 6 месяцев назад
1
Решение
59

export default class MyComponent extends Component {
constructor() {
super()
this.state = { flashSupported: false }
}

componentDidMount() {
//check flash is supported here
this.setState({ flashSupported: true })
}

render() {
// some code here
const { flashSupported } = this.state
return (
<div>
<div>
<span>I am going to show no matter if flash is detected or not</span>
</div>
{
flashSupported && (
<div>
<span>I am not going to show if flash has not been detected</span>
</div>)
}
</div>
)
}
}

Замените ({ flashSupported: true }) на реальный код обнаружения вспышки.

Обновлено в 4.25

Если результат сценария верен, то поддерживается флэш (с помощью https://gist.github.com/getify/675496).

((typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") || (window.ActiveXObject && (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) != false))

ответил(а) 2016-04-23T04:17:00+03:00 4 года, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема