小编plm*_*k61的帖子

使用React Native自动缩放图像高度

在我的React Native应用程序中,我从具有未知维度的API中获取图像.如果我知道所需宽度,如何自动缩放高度?

例:

我将宽度设置为Dimensions.get('window').width.如何设置高度并保持相同的比例?

export default class MyComponent extends Component {
  constructor(props) {
    super(props)
    this.state = {
      imgUrl: 'http://someimg.com/coolstuff.jpg'
    }
  }

  componentDidMount() {
    // sets the image url to state
    this.props.getImageFromAPi()
  }

  render() {
    return (
      <View>
        <Image 
          source={uri: this.state.imgUrl}
          style={styles.myImg}
        />
        <Text>Some description</Text>
      </View>
    )
  }
}

const styles = StyleSheet.create(
  myImg: {
    width: Dimensions.get('window').width,
    height: >>>???what goes here???<<<
  }
)
Run Code Online (Sandbox Code Playgroud)

react-native

42
推荐指数
6
解决办法
4万
查看次数

Javascript通过解构重新分配let变量

在我的React应用程序中,我使用的是airbnb的eslint样式指南,如果我不使用destructuing则会抛出错误.

在下面的情况中,我首先使用let分配两个变量latitudelongitude位置对象数组中第一个项的坐标.然后,如果用户允许我访问他们的位置,我会尝试使用解构来重新分配他们的值.

let latitude = locations[0].coordinates[1];
let longitude = locations[0].coordinates[0];

if (props.userLocation.coords) {
  // doesn't work - unexpected token
  { latitude, longitude } = props.userLocation.coords;

  // causes linting errors
  // latitude = props.userLocation.coords.latitude;
  // longitude = props.userLocation.coords.longitude;
}
Run Code Online (Sandbox Code Playgroud)

内部解构if语句导致的unexpected token错误.

以旧式方式重新分配变量会导致ESlint: Use object destructuring错误.

javascript ecmascript-6 eslint

34
推荐指数
1
解决办法
4842
查看次数

React Native Facebook登录按钮会在iOS模拟器中崩溃应用程序

我正在尝试使用FBSDK在我的React Native iOS应用程序中设置Facebook登录.按钮呈现但单击时会崩溃iOS模拟器中的应用程序.它甚至没有控制远程调试器中的任何错误.

我在Fcode中添加了FBSDKCoreKit.framework和FBSDKLoginKit.framework到我的项目,并按照本指南修改了我的info.plistAppDelegate.m

我的按钮代码有问题吗?

import React, { Component } from 'react'
import { View } from 'react-native'
import FBSDK from 'react-native-fbsdk'
const { LoginButton } = FBSDK    

import styles from '../styles'    

export default class Login extends Component {
  constructor (props) {
    super(props)
    this.onLoginFinished = this.onLoginFinished.bind(this)
  }    

  onLoginFinished (error, result) {
    if (error) {
      console.log(error)
      alert("Login failed with error: " + error);
    } else if (result.isCancelled) {
      alert("Login was cancelled");
    } else {
      alert("Login was …
Run Code Online (Sandbox Code Playgroud)

ios facebook-javascript-sdk react-native fbsdk

8
推荐指数
1
解决办法
2514
查看次数

JavaScript中的Object.assign和Object.setPrototypeOf有什么区别?

假设我有一个带有speak函数的动物对象:

function speak() {
  console.log(this.sound)
}

let animal = {
  speak
}
Run Code Online (Sandbox Code Playgroud)

我有一只狗sound:

let dog = {
  sound: "Woof!"
}
Run Code Online (Sandbox Code Playgroud)

如果我要dog继承speakanimal我可以使用Object.assignObject.setPrototypeOf.它们似乎产生了相同的结果:

let luke = Object.assign(dog, animal)

luke.speak() // Woof!

let bruno = Object.setPrototypeOf(dog, animal)

bruno.speak() // Woof!
Run Code Online (Sandbox Code Playgroud)

有什么区别,是一种被认为是"正确"的方式?

javascript inheritance

7
推荐指数
1
解决办法
684
查看次数

如何使输入占位符字体大小与输入值字体大小不同

我遇到的情况是,输入字段所需的占位符文本对于字段的宽度来说太长了。为了解决这个问题,我试图给占位符一个更小的font-size. 似乎无论我做什么,我都无法使font-size占位符文本的 与值文本不同。我试过扔!important一个,两个,都没有运气。

我的反应代码:

<input
  type="text"
  id="inputId"
  name="inputName"
  placeholder="A long string of text that does not fit"
  onChange={props.handleChange}
  value={props.someValue}
  className={styles.myClass}
/>
Run Code Online (Sandbox Code Playgroud)

我的CSS:

.myClass {
  font-size: 2em;
  height: 66.8125px !important;
}

.myClass::-webkit-input-placeholder { /* WebKit browsers */
  font-size: 1em;
}

.myClass:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
  font-size: 1em;
}

.myClass::-moz-placeholder { /* Mozilla Firefox 19+ */
  font-size: 1em;
}

.myClass:-ms-input-placeholder { /* Internet Explorer 10+ */
  font-size: 1em;
}
Run Code Online (Sandbox Code Playgroud)

html css

7
推荐指数
2
解决办法
1万
查看次数

在iOS模拟器中刷新React Native应用程序相当于关闭应用程序并重新打开它吗?

我问这个是因为点击cmd + r会导致所有组件都设置为默认状态.要使用从应用商店下载的应用复制此功能,可以通过双击主页按钮强行关闭应用,向上滑动应用,然后重新打开它?

我在商店里没有任何应用程序,所以我无法测试这个.

保存相关数据AsyncStorage是否是重新加载后保存状态的好方法?

例如:我有一个登录用户,其信息保存到州.如果我刷新应用程序,该用户将丢失并被强制重新登录.但是,如果我保存用户的信息AsyncStorage,我可以将其恢复为状态componentDidMount.

ios react-native

5
推荐指数
1
解决办法
664
查看次数

当使用水合物而不是反应堆渲染时检测破损的图像

我们正在一个项目中使用hydratereact-dom并且很难检测到损坏的图像链接。这些图像来自第三方API,因此我们无法事先知道哪些链接有效。

export default class Image extends PureComponent {
  render() {
    return (
      <img
        src={this.props.src}
        onError={(e) => {  
          e.target.src='https://mycdn.com/fallback.jpg';
        }}
      />
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我们使用render而不是,上述代码将起作用hydrate。使用时是否有办法检测损坏的图像hydrate

javascript image reactjs react-dom

5
推荐指数
1
解决办法
219
查看次数

Rails将默认DateTime设置为now

在我的应用程序中,我有团队,每个团队每周都有一个游戏时间.我希望将游戏时间设置为"现在"作为默认值.我的桌子是这样设置的

create_table "teams", force: true do |t|
  t.datetime "wk1_time"
end
Run Code Online (Sandbox Code Playgroud)

我创建了一个迁移,它看起来像这样:

class ChangeDateTimeDefault < ActiveRecord::Migration
  def change
    change_column :teams, :wk1_time, :default => DateTime.now
  end
edn
Run Code Online (Sandbox Code Playgroud)

当我运行rake db:migrate时出现错误.我的语法错了还是我错过了其他的东西?

ruby-on-rails

4
推荐指数
3
解决办法
7030
查看次数

Facebook SDK 导致 React Native 构建失败

我的团队正在使用 React Native 构建我们的第一个 iOS 应用程序。由于某种原因,仅在我的 Mac 上,运行后构建失败react-native run-ios。自从我们添加 Facebook 身份验证以来,这种情况就一直在发生react-native-fbsdk

我们都运行node -v 7.0 和最新版本的Xcode。我什至尝试在本地删除存储库并将其克隆回来。作为一个实验,我团队的另一名成员在本地删除了他的存储库,将其克隆回来,并且能够让一切正常运行。我们坐在一起,做了完全相同的步骤,这对他有效,但对我无效。

以下是我在终端中收到的错误消息:

** BUILD FAILED **


The following build commands failed:
CompileC /Users/philmok/js_projects/pLot/ios/build/Build/Intermediates/RCTFBSDK.build/Debug-iphonesimulator/RCTFBSDK.build/Objects-normal/x86_64/RCTFBSDKGraphRequestManager.o RCTFBSDK/core/RCTFBSDKGraphRequestManager.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
Installing build/Build/Products/Debug-iphonesimulator/pLot.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Failed to install the requested application
An application bundle was not found at the provided path.
Provide a valid path to the desired application bundle.
Print: Entry, ":CFBundleIdentifier", Does Not Exist …
Run Code Online (Sandbox Code Playgroud)

facebook ios react-native react-native-fbsdk

4
推荐指数
1
解决办法
2640
查看次数

使用MailChimp 3.0和Gibbon 2.x检索member_id

在我的应用程序的用户设置中,用户可以通过选中一个框来订阅或取消订阅MailChimp列表.我在检索用户MailChimp member_id时遇到了一些麻烦.

我创建了一个.env文件:

MAILCHIMP_API_KEY = "my_api_key"
MAILCHIMP_LIST_ID = "my_list_id"
Run Code Online (Sandbox Code Playgroud)

我创建了一个名为gibbon.rb的初始化程序:

Gibbon::Request.api_key = ENV["MAILCHIMP_API_KEY"]
Gibbon::Request.timeout = 15
Run Code Online (Sandbox Code Playgroud)

我在user.rb中使用此方法

def mailchimp_news
  @mailchimp_list_id = ENV["MAILCHIMP_LIST_ID"]
  @gibbon = Gibbon::Request.new
  if self.news_email == true
    @gibbon.lists(@mailchimp_list_id).members.update(body: {
    email_address: self.email,
    status: "subscribed",
    merge_fields: {FNAME: self.name,
                   LNAME: ""}
    })
  elsif self.news_email == false
    @gibbon.lists(@mailchimp_list_id).members(member_id).update(body: { status: "unsubscribed" })
end
Run Code Online (Sandbox Code Playgroud)

结束

并通过检查后调用它

after_save :mailchimp_news
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:undefined local variable or method `member_id'.我如何获得member_id?

ruby-on-rails mailchimp gibbon ruby-on-rails-4.2

1
推荐指数
1
解决办法
926
查看次数

如何使用 Javascript 渲染多代码点表情符号

我正在尝试在聊天应用程序中渲染表情符号,但无法让由多个部分构建的表情符号正常工作。

例如:

作品26f9的代码点Person with Ball

const emoji = String.fromCodePoint('0x26f9');
Run Code Online (Sandbox Code Playgroud)

26f9-fe0f-200d-2640-fe0f对于Woman bouncing ball不起作用

const emoji = String.fromCodePoint('0x26f9-fe0f-200d-2640-fe0f');
Run Code Online (Sandbox Code Playgroud)

javascript emoji

1
推荐指数
1
解决办法
285
查看次数