2017-04-07 17 views
0

React、React Hardware([https://github.com/iamdustan/react-hardware/]]、Johnny-Five with the Particle Photon)を使用しています。C-LangチェックがReact-Hardware/Particleで失敗しました

# Fatal error in ../deps/v8/src/api.cc, line 1062 
# Check failed: !value_obj->IsJSReceiver() || value_obj->IsTemplateInfo(). 
# 

==== C stack trace =============================== 

    0 node        0x00000001008c5ecd v8::base::debug::StackTrace::StackTrace() + 19 
    1 node        0x00000001008c4be5 V8_Fatal + 233 
    2 node        0x0000000100146438 v8::Template::SetAccessorProperty(v8::Local<v8::Name>, v8::Local<v8::FunctionTem 
plate>, v8::Local<v8::FunctionTemplate>, v8::PropertyAttribute, v8::AccessControl) + 0 
    3 serialport.node      0x00000001044ab098 SerialportPoller::Init(v8::Local<v8::Object>) + 248 
    4 serialport.node      0x00000001044a98ed init + 1201 
    5 node        0x00000001007c681a node::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&) + 860 
    6 node        0x000000010016a808 v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo< 
v8::Value> const&)) + 340 
    7 node        0x00000001001b1fdf v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespa 
ce)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::Heap 
Object>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) 
+ 915 
    8 node        0x00000001001b15b9 v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::int 
ernal::Isolate*) + 281 
    9 ???         0x00000a3cdd6043a7 0x0 + 11256528389031 
    10 ???         0x00000a3cdd80a246 0x0 + 11256530510406 
[1] 69327 illegal hardware instruction node lib/app.js 

私はハードウェアが動作するようになっているのか分からないので、それは少し不可解だ:以下、このエラー・スタックは、私は私のlib/app.jsファイルを実行すると起動します。

import React, {Component} from 'react'; 
import ReactHardware from 'react-hardware'; 

import five from 'johnny-five'; 
import Particle from 'particle-io'; 

class BlinkingLed extends Component { 
    componentDidMount() { 
    this.node = new five.Led(this.props.port); 
    this.node.blink(this.props.period); 
    } 

    componentWillReceiveProps(nextProps) { 
    if (this.props.period !== nextProps.period) { 
     this.node.blink(nextProps.period); 
    } 
    } 


    render() { 
    return null; 
    } 
} 

BlinkingLed.defaultProps = { 
    port: 13, 
    period: 500, 
    }; 

ReactHardware.render(
    <BlinkingLed port={11} period={500} />, 
    new five.Board({ 
     io: new Particle({ 
     token: process.env.PARTICLE_TOKEN, 
     deviceId: process.env.PARTICLE_DEVICE_ID 
    }) 
    }), 
    (inst) => { 
    console.log('Rendered <%s />', BlinkingLed.name); 
    } 
); 

はここに私のpackage.jsonは以下です:

は、ここに私のsrc/app.jsです。私は、ブランチ、バベルを使用していますことに注意してください、とJSXと反応してください:

{ 
    "name": "react-particle", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "build": "babel src -d lib" 
    }, 
    "keywords": [], 
    "author": "", 
    "license": "ISC", 
    "dependencies": { 
    "johnny-five": "^0.10.7", 
    "particle-io": "^0.14.0", 
    "react": "15.0.0-rc.1", 
    "react-hardware": "^0.5.0-alpha.2" 
    }, 
    "devDependencies": { 
    "babel-cli": "^6.24.1", 
    "babel-preset-env": "^1.3.2", 
    "babel-preset-react": "^6.24.1" 
    } 
} 
+0

エラーはnode-serialportから来ていますが、私がなぜJohnny-FiveでParticle-IOを使用している場合、node-serialportはボードとの通信に使用されていないのか分かりません。それはReact Hardwareを残し、私はそのプロジェクトのソースコードや実行のセマンティクスに精通していません。なぜそのレイヤーを追加する必要があるのか​​わからないのですか?それはいかなる利益や有用性も提供していないようです。 – Rick

答えて

0

犯人はreact-hardwareました。エラーメッセージの発生を切り分けることができました。エラーは、react-hardwareが必要な場合にのみ発生します。