草庐IT

react-native-share

全部标签

javascript - 为什么我的 React 组件渲染被调用两次,一次没有数据,然后又一次有数据,但是为时已晚的异常?

我有一个组件TreeNav,其数据来自api调用。我已经设置了reducer/action/promise和所有的管道,但是当我在数据上调用map()时在组件渲染中,得到“UncaughtTypeError:Cannotreadproperty'map'ofundefined”。故障排除显示TreeNavrender()被调用了两次。第二次是在数据从api返回之后。但是由于第一个render()错误,第二个render()永远不会运行。这是我的代码文件:--------reducers/index.js--------import{combineReducers}from'redux'

javascript - 在不制作副本的情况下替换 react redux reducer 中的新状态

如果我已经完全替换了状态的一部分,我是否仍然需要使用Object.assign或扩展运算符来复制原始状态并将其替换为新状态,或者我可以直接返回我的reducer中的新状态?constfetching=(state={isFetching:false},action)=>{switch(action.type){case'REQUESTING':returnObject.assign({},state,{isFetching:true})case'RECEIVE_POKEMON_TYPE_INFO':returnObject.assign({},state,{isFetching:fal

javascript - Redux Action 中的 Getters - React Native

我希望有一些函数可以获取当前状态来用它做一些逻辑,而不必通过参数将当前状态传递给函数。这是我的例子。在我的Action文件中,我有:exportconstaddToSearchHistory=(newSearch)=>({type:ADD_TO_SEARCH_HISTORY,newSearch})exportconstaddToCardHistory=(newCard)=>({type:ADD_TO_CARD_HISTORY,newCard})例如,我想要一个“getter”函数,告诉我“搜索历史”是否已经达到10个项目。所以我所做的是:exportconstsearchHasMaxH

javascript - React - 按对象属性过滤

我正在尝试按属性过滤对象,但无法正常工作。对象中的数据结构如下:我正在通过UID获取数据,然后映射该对象的所有项目,但我无法使过滤器工作。渲染方法如下所示:render(){return({Object.keys(this.state.dataGoal).filter(key=>key.main==true).map((key,index)=>{return{this.state.dataGoal[key].name}{this.state.dataGoal[key].main}})}知道我做错了什么吗?感谢您的帮助,雅各布 最佳答案

javascript - react 。 child 作为 Prop

我知道如何将child传递给React组件:OpenThisWonderfulLink但是我可以这样使用吗:有效,但这正常吗?我可以每次都使用这种方式吗?附言抱歉我的英语不好..) 最佳答案 是的,children就像任何其他prop一样,可以用作prop来渲染子组件,而不是将子组件嵌套在相应的元素 关于javascript-react。child作为Prop,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

javascript - React-router v4 页面刷新不起作用

我可能遗漏了历史记录或其他内容,但是当我刷新子路径(例如/login)或我得到的任何其他路径上的页面时:403禁止访问代码:拒绝访问消息:拒绝访问RequestId:075CAA73BDC6F1B9HostId:O1n36xVCoeu/aLaSMrtCkAFZruWk5ZcO4RIrznEhvUxdu8lFEhL0XcKw2L4W4J7VYYet+HDv8tc=请记住,只要我不刷新,路由就可以正常工作。假设我转到/(主页)。在它上面,我有一个hyperlink映射到我的react-router路由中的路径/login。我单击超链接,它工作正常,根据我的react-router路由在re

javascript - 在 React 组件中使用 setInterval

我正在阅读React官方网站上的教程。在生命周期方法的例子中,在componentDidMount方法下,给setInterval函数设置了一个timerID。我的问题是,即使timerID已初始化,但它从未在整个应用程序中被调用,应用程序如何在不在应用程序的任何地方显式调用timerID的情况下工作。这是下面的代码。classClockextendsReact.Component{constructor(props){super(props);this.state={date:newDate()};}componentDidMount(){this.timerID=setInterv

javascript - react 导航导航标题顶部的绝对位置

我正在制作加载屏幕并将其设置为绝对定位整个屏幕。但是,当使用react-navigation时,它似乎没有覆盖标题。有没有办法将我的组件放在导航库的header组件之上?当您使用react-navigation时,您可以为该屏幕配置标题。通常,当您导航到一个屏幕时,您在该屏幕中呈现的任何代码都会自动放置在导航标题下方。但是,我希望我的组件占据整个屏幕并覆盖标题。我想保留标题,但我想用不透明度覆盖它。这可能吗?constnavigationOptions={title:"SomeTitle",};constNavigator=StackNavigator({First:{screen:S

javascript - react native 推送通知声音

我正在尝试向我的本地推送通知添加声音。我正在使用RN0.45.1和reactnative推送通知3.0.0我设法在iOS和Android中使用默认声音安排通知。我没有设法添加自定义声音。我有mp3类型的声音文件。我尝试了以下方法:将文件放在我的项目文件夹中:'/src/assests/sounds/sound.mps'(我项目中的一个文件夹)比:importnotificationSoundfrom'../src/assests/sounds/sound.mps';PushNotification.localNotificationSchedule({message:'Testmess

javascript - react 路由器 : access history in rendered Route component

我知道有很多关于此的问题,但我似乎无法让它工作:我需要从通过路由呈现的子组件访问“历史记录”。(它从redux容器接收Prop)。我需要将历史对象传递给在每个路由中呈现的组件,这样我就可以this.props.history.push('/route')在子组件中。这个应用程序以前不太动态,所以每个Route都用component={someComponent}硬编码;但我发现在动态执行路由时,您需要使用render={()=>}.从component={}更改路线后至render={()=>...}我在子组件中丢失了历史记录。我的代码是这样的:importReact,{Compone