https://github.com/nfl/react-helmet
Reactで metaタグ、titleタグ、styleタグなど <head></head>
に入ってるタグを書き換えたい時に便利なnpmモジュール
以下README.mdの現時点でのExample.
https://github.com/nfl/react-helmet
Reactで metaタグ、titleタグ、styleタグなど <head></head>
に入ってるタグを書き換えたい時に便利なnpmモジュール
以下README.mdの現時点でのExample.
React Componentのnpm packagesをつくった。React + react-bootstrapの環境で、window.alertやwindow.confirmを使うとUIが浮いてしまうので、<Modal />
を使うんだけど、毎回細かい定義をするのが面倒なので、メソッドのパラメータでサクッといろいろなダイアログを表示できるようにした。
https://github.com/akiroom/react-bootstrap-dialog/
デモはこちらからどうぞ。
Reactをv0.14.xからv15.x.x系にアップデートしたところ、以下のようなWarningが多発するようになった。
Warning: Unknown prop
hogefuga
on <button> tag. Remove this prop from the element. For details, see https://fb.me/react-unknown-prop for details.
これは、今までは無視されていた未定義のpropを渡してはいけないという仕様が追加されたために発生している。
これを解消するには、lodashの_.omitを使うと便利。omitは、オブジェクトから指定したキーを除外した結果を返してくれる。
omitを使えば、こんな感じで書ける:
import {omit} from 'lodash'
render () {
const buttonProps = omit(this.props, ['hogefuga'])
return <button {...props} />
}
ちなみに以下のように分割代入に ...
を使って指定されてない残りを取り出す方法はES7からしか使えない。
(参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment )
({hogefuga, ...buttonProps} = this.props)
React + react-bootstrapの時、ホバーしていたツールチップを、クリックしたら消す、みたいな処理を書きたい時のメモ。ポイントは、OverlayTriggerのtriggerを、[‘hover’, ‘focus’]とnullで切り替えて、refsを使って直接hide()を呼び出すこと。ちなみにmanuallyに呼び出したい時はthis.refs.tooltipTrigger.show()
とかでも呼べる。
onFocus (e) {
this.setState({
editing: true
}, () => {
this.refs.tooltipTrigger.hide()
})
}
onBlur (e) {
this.setState({
editing: false
})
}
const tooltip = (
<Tooltip id='tooltip'>
ここをクリックして編集
</Tooltip>
)
<OverlayTrigger
ref='tooltipTrigger'
overlay={tooltip}
trigger={this.state.editing ? null : ['hover', 'focus']}>
<FormControl
componentClass='input'
onFocus={this.onFocus}
onBlur={this.onBlur}
/>
</OverlayTrigger>