React Trigger Component
[![NPM version][npm-image]][npm-url] [![npm download][download-image]][download-url]
import { React } from 'react'
const App = props => {
return (
<div>
{serverData
&& serverData.producList
&& serverData.producList[0]
&& serverData.producList[0].price
&& ( <div>{`the price is ${serverData.producList[0].price}`}</div>
)}
</div>
)
}
使用 safer 可以安心读写对象的属性和值,让开发者将精力集中在代码逻辑上,引入 safer 并包裹在想要读写的对象外层,即可安全使用。 当获取/赋予的属性不存在时,程序并不会崩溃白屏,可以减少开发者为了“保证程序健壮性”而加入的层层判断的冗余代码。
NOTE: safer 使用了 Proxy 的特性来实现安全读写功能,如果浏览器环境不支持 Proxy,可以使用 proxy-polyfill。
safer 也支持方法的调用。如果对象中的方法不一定存在,那么也可以使用 safer 包裹在外层,安心调用
npm install jerrys-safer --save
online example: demo
import { React } from 'react'
import { magicData } from '../api'
import { safer } from 'jerrys-safer'
const safeData = safer(magicData)
safeData.a.b.c.d.c.name = 'jerry' // fine
const App = props => {
return (
<div>
{safeData.a.b.c.d.f.g.get()}
</div>
)
}
api | type | description |
---|---|---|
exist | function | 判断对象中属性的值是否存在,返回布尔值 |
get | function | 获取对象中属性的值,如果属性不存在,则返回 undefined |
set | function | 为对象中的属性赋值,如果属性不存在,则返回 undefined |
invoke | function | 执行对象中的函数方法,如果不是函数,则不会执行,并打印警告 |
赋值操作 | 为对象中的属性赋值,如果属性不存在,则返回 undefined |