mirror of https://github.com/status-im/reagent.git
Merge pull request #467 from plexus/class-context-type
Add support for Class.contextType
This commit is contained in:
commit
4c5dd6fd7b
|
@ -1,5 +1,9 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## master
|
||||||
|
|
||||||
|
- Add support for the static [Class.contextType](https://reactjs.org/docs/context.html#classcontexttype) property
|
||||||
|
|
||||||
## 0.9.0-rc3 (2019-11-19)
|
## 0.9.0-rc3 (2019-11-19)
|
||||||
|
|
||||||
**[compare](https://github.com/reagent-project/reagent/compare/v0.9.0-rc2...v0.9.0-rc3)**
|
**[compare](https://github.com/reagent-project/reagent/compare/v0.9.0-rc2...v0.9.0-rc3)**
|
||||||
|
|
|
@ -44,6 +44,31 @@ Reagent syntax follows [React Fragment short syntax](https://reactjs.org/docs/fr
|
||||||
container)
|
container)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Alternatively you can use the [static contextType property](https://reactjs.org/docs/context.html#classcontexttype)
|
||||||
|
|
||||||
|
```cljs
|
||||||
|
(defonce my-context (react/createContext "default"))
|
||||||
|
|
||||||
|
(def Provider (.-Provider my-context))
|
||||||
|
|
||||||
|
(defn show-context []
|
||||||
|
(r/create-class
|
||||||
|
{:context-type my-context
|
||||||
|
:reagent-render (fn []
|
||||||
|
[:p (.-context (reagent.core/current-component))])}))
|
||||||
|
|
||||||
|
;; Alternatively with metadata on a form-1 component:
|
||||||
|
;;
|
||||||
|
;; (def show-context
|
||||||
|
;; ^{:context-type my-context}
|
||||||
|
;; (fn []
|
||||||
|
;; [:p (.-context (reagent.core/current-component))]))
|
||||||
|
|
||||||
|
(r/render [:> Provider {:value "bar"}
|
||||||
|
[show-context]]
|
||||||
|
container)
|
||||||
|
```
|
||||||
|
|
||||||
Tests contain example of using old React lifecycle Context API (`context-wrapper` function):
|
Tests contain example of using old React lifecycle Context API (`context-wrapper` function):
|
||||||
[tests](https://github.com/reagent-project/reagent/blob/master/test/reagenttest/testreagent.cljs#L1141-L1165)
|
[tests](https://github.com/reagent-project/reagent/blob/master/test/reagenttest/testreagent.cljs#L1141-L1165)
|
||||||
|
|
||||||
|
|
|
@ -312,7 +312,7 @@
|
||||||
;; https://gist.github.com/thheller/7f530b34de1c44589f4e0671e1ef7533#file-es6-class-cljs-L18
|
;; https://gist.github.com/thheller/7f530b34de1c44589f4e0671e1ef7533#file-es6-class-cljs-L18
|
||||||
|
|
||||||
(def built-in-static-method-names
|
(def built-in-static-method-names
|
||||||
[:childContextTypes :contextTypes
|
[:childContextTypes :contextTypes :contextType
|
||||||
:getDerivedStateFromProps :getDerivedStateFromError])
|
:getDerivedStateFromProps :getDerivedStateFromError])
|
||||||
|
|
||||||
(defn create-class
|
(defn create-class
|
||||||
|
|
Loading…
Reference in New Issue