web-dev-qa-db-ja.com

es6:const内で関数を定義する方法は?

私はこの反応ネイティブプロジェクトをやっていて、プロジェクトファイルを整理するために this method を使用していますが、const内で関数を宣言する方法がわかりません。

import React from 'react';
import { View, ListView, Text } from 'react-native';

const Category = (props) => {

    const ds = ListView.DataSource({rowHasChanged : (r1, r2) => r1 !== r2});

    // how to declare function here?

    return (
        <View>
            <ListView
                dataSource={ds}
                renderRow={(rowData) => <Text>{rowData}</Text>}
                renderSeparator={// how to put function reference here?}
            />
        </View>
    );
}
6
bazi

あなたが「const」と呼んだのは、実際にはアロー関数です。 JSでは、必要に応じて入れ子関数を追加できます。

const Category = (props) => {

    const ds = ListView.DataSource({rowHasChanged : (r1, r2) => r1 !== r2});

    // how to declare function here?

    // You can declare another arrow function if you want:
    const foo = () => console.log('arrow');

    // Or a standard function
    function bar() { console.log('standard'); }

    // Even a function returning a function :-)
    function baz() { return function() {...} }

    const renderCustomComponent = () => <div>____</div>

    return (
        <View>
            <ListView
                dataSource={ds}
                renderRow={(rowData) => <Text>{rowData}</Text>}
                renderSeparator={ renderCustomComponent } {/* Here goes your reference */}
            />
        </View>
    );
}
10
Seb Bizeul